JavaScript初学

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() 方法,字符串转整数方法
  • 作用
    1. 将浮点数转成整数
    2. 将字符串转成整数,在开头为数字的情况下才有效
  • 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
  • 综合运算顺序: !、 &&、 ||
上一篇:Java直接内存与堆内存


下一篇:js 数据类型相关?