IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2021/08/05笔记 -> 正文阅读

[JavaScript知识库]2021/08/05笔记

我们于2021/08/05 的学习目标是:JavaScript,核心任务为:

1、学习技术:

1)、JavaScript的基本概念

2)、调试

3)、变量

4)、数据类型

5)、typeof运算符

6)、数据类型的转换

7)、运算符

8)、数组

9)、函数

10)、this绑定对象

2、文档总结

1)、JavaScript的基本概念

JavaScript是具有面向对象能力的,解释型程序设计语言

能验证发往服务器端的数据,增加Web互动

用法:和HTML一起使用,可以通过直接或间接的方式将JS代码嵌入在HTML页面中。

分类:

行内JS:写在标签内部的JS代码

<button type="button" onclick="alert('我是一个按钮')">按钮</button>

内部JS:定义在Script标签内部的JS代码

<script>

?? console.log("内部JS ");

</script>

外部JS:单独的JavaScript文件,在HTML通过Script标签实现

JS文件:first.js

alert("fds!!!!");

在HTML中引用:

<script scr="first.js"></script>

JS可以定义在页面中的任意位置,推荐放在head标签对中和body标签的末尾位置,便于后期维护。对于需要获取页面元素的JS,需放在body标签的末尾位置,当页面全部加载完成后触发函数的执行。

2)、调试

测试JS中的调试:

<script>

alert()

</script>

弹出对话框

<script>

document.write()

</script>

内部可以识别HTML语法结构

当原页面中的内容加载完毕后触发,会覆盖原页面

<script>

<button onclick="document.write('覆盖的文字');">按钮点击</button>

</script>

console控制台

<script>

console.log("日志输出")

</script>

控制台输出打印(推荐)

<script>

console.info("信息输出")

</script>

控制台输出信息

<script>

console.error("错误输出")

</script>

控制台输出错误

<script>

console.warn("警告输出")

</script>

控制台输出警告

3)、变量

变量:存储单个数据|表达式

声明的同时赋值

<script>

var 变量名 = 赋值;

</script>

先声明后赋值

<script>

var 变量名;

变量名 = 赋值;

</script>

同时定义多个变量

<script>
    var x=1,y="abc",z=false;
</script>

4)、数据类型

简单|基础数据类型:

String字符串 --> 黑色

?? 一对''|""表示字符串

?? 包含0~n个字符

?? 通过转义字符进行转义

Number 数值型

?? 形式为整数或小数

?? NaN Not a Number 不是一个数字

????? 直接赋值NaN

????? 当运算无法得到一个正确结果

Boolean 布尔型

?? true | false

?? 常用于对条件判定结果类型

Undefined 未定义

?? 直接赋值undefined

?? 声明变量未赋值的默认值

Null 空

?? 直接赋值Null

?? 无法获取元素

Null与Undefined的区别:

?? underfined:存在但没有值

?? null:元素不存在

Function 函数型

?? function 函数名(参数列表){函数体}

?? 通过函数的调用使用

复杂|复合数据类型

?? 对象类型

?? {}表示对象

?? 键值对组合而成

?? {

????? key:value

????? key:value

????? ...

?? }

?? 两个键值对之间使用,分隔

?? Key与Value之间使用:分隔

?? Key:如果符合命名规范可以定义,不符合的需要前后加引号

???Value:可以为任意类型

5)、typeof运算符

typeof运算符:帮助判断数据的类型

返回一个字符串形式的小写的数据类型

Number --> number

String --> string

Null --> null

Undefined --> undefined

Boolean --> Boolean

Function --> function

Object --> object

6)、数据类型的转换

对象类型(函数)不参与类型转换

分类:

显示类型转换|强制

?? String():

????? 直接将值转换为对应的字符串

?? Boolean():

????? 空串转为false,非空串转为true

????? 数字0和NaN转换为false,其他数字转为true

????? null和undefined都转为false

?? Number():

????? 空串和只包含空格的字符串转为0

????? 纯数字字符串转为数字类型

????? 非纯数字字符串转为NaN

?? ?? true转为1,false转为0

????? null转为0

????? undefined转为NaN

隐式类型转换:自动,执行某些行为操作时进行的类型转换

符号: + - * / ...

<script>

?? //隐式类型转换

?? console.log('a'-1);? //NaN

?? console.log(false-1);? //-1

?? console.log(true+false);? //1

</script>

7)、运算符

=赋值

==判断数据值是否相等

===先判断类型,再判断值是否相等

!=检查数据是否不相等

!==先检查类型,再检查数据是否不相等

逻辑运算符:JS中两边的表达式可以是任意类型

符号: & | && ||

&&:如果数据不是布尔类型,左边的操作数转换成布尔类型为false则输出第一个操作数;如果左边是true,结果是第二个操作数。

||:如果数据不是布尔类型,左边的操作数转换成布尔类型为false,则输出第二个操作数;如果左边是true,结果是第一个操作数。

<script>

?? console.log(1=='1');? //true

?? console.log(1==='1'); //false



?? console.log(1!='1'); //false

?? console.log(1!=='1'); //true



?? console.log(true && false);//false

?? console.log(true || false);//true



?? console.log(Boolean(1));

?? console.log(1 && 'a');? //'a'

?? console.log(1 || 'a');? //1

</script>

8)、数组

数组[]:存储多个数据,长度可变,可以存储任意类型的数据

创建方式:

<script>

arr = new Array();

</script>

创建一个空数组

<script>

arr = new Array(值1,值2,值3);

</script>

创建数组并赋值

<script>

arr = [值1,值2,值3];

</script>

创建数组并赋值, 推荐

索引:检索数组的值,为0~length-1的整数,超出的部分值为undefined

<script>

arr[索引] = 值;

</script>

操作数组中的数据,当索引不是整数时定义为属性值

数组的遍历:

普通for

<script>

for(var i=0;i<=arr.length-1;i++){

?? console.log(arr[i]);

}

</script>

for in

<script>

for(var i in arr){

?? console.log(arr[i]);

}

</script>

for each

<script>

arr.forEach(function (value,index){

?? console.log(value+"<--"+index);

});

</script>

常用方法:

<script>

?? var arr = ["red","green","yellow","pink","black"];

?? //数字常用方法

?? //slice 截取(切片)数组,原数组不发生变化

?? console.log(arr.slice(2));? /*默认从参数索引位置开始截取到最后*/

?? console.log(arr.slice(1,3));? /*默认从参数1索引位置开始截取到参数2索引位置结果,结束索引不包含*/

?? console.log(arr);

?? //splice 剪接数组,原数组变化,可以实现前后删除效果

?? //console.log(arr.splice(2));? /*实现了剪切|删除的效果,从索引位置开始剪切到最后,修改原数组*/

?? //console.log(arr.splice(1,2));? /*实现了删除的效果,从参数1索引位置开始删除参数2个*/

?? console.log(arr.splice(1,2,"哈哈","呵呵","吼吼"));? /*实现替换效果,把参数1索引位置开始,删除参数2个数据,替换为参数3开始后面的数据*/

?? console.log(arr);

</script>



9)、函数

JS中的函数:封装功能

函数声明

<script>

?? function 函数名(参数列表){

????? 函数体;

?? }

</script>

调用:执行函数

函数名(实参);

在函数声明的前面添加+|-|~|!或者前后添加一对()

<script>

/*函数声明的其他调用方式*/

~function fun2(){

?? console.log("函数声明2");

}();

+function fun3(){

?? console.log("函数声明3");

}();

-function fun4(){

?? console.log("函数声明4");

}();

!function fun5(){

?? console.log("函数声明5");

}();



(function fun6(){

?? console.log("函数声明6");

})();

</script>

函数表达式

<script>

?? var 变量名 = function(参数列表){

????? 函数体;

?? };

</script>

函数表达式中的函数名作用只有一个,在递归使用的时候有用,否则一般默认省略

调用:

变量名(实参);

函数表达式后面直接添加(实参),在当前直接调用

<script>

var f2 = function(x){

?? console.log("函数表达式2");

}(1);

</script>

注意:

参数个数可以不同,函数没有传递实参,默认undefined

函数都存在返回值,没有显示定义return关键字返回结果,默认返回值为undefined

10)、this绑定对象

JS是值传递|引用传递(地址值传递)

JS中的作用域:以函数为单位

JS中的函数可以任意嵌套

函数存在作用域的提升:函数声明的方式会发生作用域的提升

变量的作用域提升:把当前变量的声明提升到当前作用域的最上面

当在函数中省略var关键字定义的变量,成为全局变量,但是事先要求这个函数至少被调用过一次

??? <script>

??????? /*

??????????? function func(){

??????????????? console.log("普通的函数声明");

??????????? }

???????? */

??????? //调用函数的作用域提升

??????? func();



????? ??// 给形参o赋予了新的数组

??????? var obj2 = [1, 2, 3];

??????? function paramter2(o){

??????????? o = [2, 3, 4];

??????????? o[1] = 3;

??????? }

??????? paramter2 (obj2);

??????? console.log(obj2); //[1, 2, 3];





??????? //快

??????? {

??????????? var i = 1;

??????? }

??????? console.log(i);

??????? //作用域

??????? function fn1(){

??????????? var j = 11;

??????? }

??????? //console.log(j);



??????? //嵌套

??????? function f1(){

??????????? function f2(){

??????????????? function f3(){}

???? ???????}

??????? }



??????? //返回值为函数时

??????? function f4(){

??????????? console.log("我是f4");

??????????? return function(){

??????????????? console.log("返回值函数");

??????????? }

??????? }

??????? console.log(f4); //打印函数结构

??????? console.log(f4()); //打印输出函数f4的返回值

??????? f4()(); //调用f4函数,得到返回值函数再调用



??????? function func(){

??????????? console.log("普通的函数声明");

??????? }





??????? //变量作用域提升

??????? function func2(){

??????????? //var haha = undefined;

??????????? console.log(haha);

??????????? var haha = "zhangsan";? //局部变量

??????????? m = 1; //全局变量

??????? }

??????? //func2();



??????? console.log(m);

??? </script>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 15:55:23  更:2021-08-06 15:55:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 -2025/2/5 22:45:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码