JavaScript初学
JavaScript语法
ECMAScript 的应用
- JavaScript,JScript,ActionScript 等脚本语言都是基于 ECMAScript 标准实现的
- JavaScript 在 ECMAScript 的基础上进行扩展
JavaScript 的组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rFs7cpHM-1613022609261)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208063754713.png)]
- ECMAScript,规定语法、变量、数据使用方式
- DOM,文档对象模型,文档树
- BOM,浏览器对象模型,操作浏览器动作API
alert 语句
- 在浏览器中弹出一个警示框,警示框的警示内容可为人为定义
- 是一个 js 内置好的功能(函数、方法)
- alert 语句作为一个函数,小括号内部可以传递参数,根据数据类型不同,有不同的语法要求
alert("这是一个警示框"); // 语法正确
alert(这是一个警示框); // 语法错误
alert(1); // 语法正确
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xVdctJqQ-1613022609264)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208163924293.png)]
prompt() 语句
- prompt: 提示
- 作用:弹出一个对话框,内部有一个提示语句以及一个输入框,可以在输入框中根据提示任意输入内容
- 是一个 js 内置好的功能
- 返回输入的数据(该数据是字符串类型的)
prompt("请输入您的年龄", "18"); //第二个参数相当于默认值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljhJPHQ0-1613022609268)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208164115436.png)]
prompt("请输入您的年龄"); //若不设置第二个参数,则输入框空白
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EOzegU7Y-1613022609271)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208164211743.png)]
console 控制台
- js 有一个内置对象 console,内部封装了大量的属性和方法(函数),可以通过给 console 对象打点调用方法名(),属性名方式去执行。log方法,可在控制台实时输出。
console.log(1+2);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxxD4dZx-1613022609273)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208165305001.png)]
数据类型
仅记录不太熟悉的部分
数字类型
整数
浮点数
- 科学记数法:1.2e4 = 1.2 * 104, 1.2e-4 = 1.2 * 10-4
- 浮点数值的最高精度是17位小数,但在进行算数计算时其精度远远不如整数
- 因此,浮点数不适合做数值比较或判断大小
Infinity
NaN
-
not a number
-
与任何值都不相等,包括其本身
-
isNaN(): 判断一个数据是不是一个NaN
字符串类型
undefined 类型
布尔类型
null 类型
- 从逻辑角度,null 值表示一个空对象指针
对象类型
检测数据类型
- 使用 typeof() 方法
console.log(typeof(1));
console.log(typeof("1"));
console.log(typeof(undefined));
console.log(typeof(null));
console.log(typeof(true));
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5bAsxZO-1613022609274)(C:\Users\黎活宝\AppData\Roaming\Typora\typora-user-images\image-20210208214226227.png)]
- typeof 作为关键字,后面加空格,空格后添加数据的方式,来检测数据
- 但实现检测数据类型的作用,更推荐使用 typeof()
console.log(typeof 1); // 结果也是number
数据类型转换
转换成字符串类型
- 数据.toString() 方法
- String(数据) 方法,当数据没有 toString() 方法时,使用 String(数据) 方法,例如数字类型、undefined类型、null 类型
- ”+“进行字符串拼接,若任意一个操作数为字符串类型,则结果得到的就是两个操作数拼起来的字符串
转换成数值类型
- Number(数据) 方法
- 适用于任何数据类型
- 字符串 类型
- 若为纯数字字符串,则转成对应数字;
- 若为空字符串或空白字符串,则转成 0;
- 其他情况,转成 NaN
- undefined 类型,转换为NaN
- null 类型,转换为 0
将字符串转换成数值类型
- parseInt() 方法,字符串转整数方法
- 作用
- 将浮点数转成整数
- 将字符串转成整数,在开头为数字的情况下才有效
- parseFloat() 方法:将字符串转浮点数方法
转换成布尔类型
- Boolean(数据) 方法
- 可用于任何数据类型
- 转换为 false: NaN、0、”“ 空字符串、undefined、null
操作符
仅记录不熟悉的部分
算术运算符
- NaN 参与的运算:得到的结果都是NaN
- Infinity 参与的运算,得到的结果视情况而定。当无法确定是什么数时,结果为 NaN,如 Infinity % 5 无法确定结果是 0 到 4 中的哪一个,最终结果为 NaN
- 以数字开头的字符串参加运算时
- 当为加法时,+ 号作为连字符
- 在其他算数符时,计算机会自动使用 Number() 方法(隐式转换),将其他数据类型转换成数字类型,再进行运算
比较运算符
- 特殊值参与比较运算(===在值相等的情况下,数据类型相等才为true)
- NaN 参与的比较,!= 和 !== 结果为 true,其他均为 false
- Infinity 参与的比较,视情况而定
- 其他数据类型与数字 参与的比较(排除字符串与字符串比较)
- 将其他数据隐式转换成数字,再进行比较
- null 虽然隐式转换为 0 ,但 null 与 0 比较时,0 == null 为false,0 >= null 和 0 <= null 为true
- null == undefined 为 true
- 字符串与字符串 比较
- 比较两个字符串的 Unicode 编码顺序
- 0-9 < A-Z < a-z
- 不关心两个字符串的长度,从第一个字符开始比较,若能够确定结果则停止比较下去;否则比较下一个字符,以此类推
逻辑运算符
- && ,都真才真,有假就假
- || ,有真就真,都假才假
- !
- 其他类型数据参与运算
- 逻辑与 a&&b, 若a隐式转换(Boolean())的结果为false,则结果为a;否则,结果为b
- 逻辑或 a||b,若a隐式转换(Boolean())的结果为true,则结果为a;否则,结果为b
- 非运算的结果只能是 true 或 false
- 综合运算顺序: !、 &&、 ||