2021-08-11

1.严格模式

ES5 引入,对某些不安全(ES3)的操作会抛出错误,

关键字"use strict"

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.语句后加分号;

可增加性能,解析器不必花时间推测应该在哪里插入分号

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.变量

ES变量是松散类型,可以保存任意类型数据,未经初始化的变量会保存一个特殊的值 undfined

var 函数内有效,let 代码段有效 (挖个坑,这个要和TS的let的详细对比)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

4.数据类型

    1.Undefined (未经初始化的值,存在意义,区分空对象指针与未经初始化的变量)

    2.Null (空对象指针)

    3.Boolean (true未任何非零值,非空字符串,任何对象,false未0和NaN 空字符串、null、undefined)

    4.Number (整数和浮点数),

    整数:(0****为八进制【序列数字超出7,会转为10进制】     0x*****为16进制)(八进制在严格模式下无效)(+0 ==  -0    因崔斯听)

浮点数:(会自动转换为整数如1.0 ,可用e表示法表示大数或者小数),JS的浮点数依旧是IEEE754,所以不可用==判断

    NaN,非数值 Not a Number

数值转换:

    Number()、parseInt(“10”,2)(可用二进制 八进制 十六进制解析) 、parseFloat()

    5.String

    6.Object

可使用typeof操作符 返回值来判断是哪种类型,操作符是操作符不是函数,所以可以不用圆括号

 typeof(null) 会返回object 

typeof(未初始化的值)会返回undefined  正常情况下回报错

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

5.操作符

 1.递增和递减 ++、-- 借鉴自C

骚操作,不仅仅适用于整数,还可适用于 字符串、布尔值、浮点数、对象

2.位操作符

 负数,补码, 与C++相同

........................................................

6. label语句,有点像goto,之后单独对比一下

7. with语句,将代码作用域设置到同一个特定对象中。严格模式下,不允许使用with,同时大量使用with会导致性能下降(看js 高级程序设计的说明,好像是会查询,所以导致性能下降)

-----(这意味着在 with 语句的代码块内部,每个变量首先被认为是一个局部变量,而如果在局部环境中找不到该变量的定义,就会查询location 对象中是否有同名的属性。如果发现了同名属性, 则以 location 对象属性的值作为变量的值。) 

8.function 参数 

    ES函数不介意传递进来多少个参数,不在乎类型,原因是参数在内部是一个数组来表示的,函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每个参数。

    ES特点,命名的参数只提供便利,但不是必须的

参数,没有传递值的命名参数将自动被赋予undefined值

9.ES 没有重载


第三章看完。

遗留问题

1.var 和 let 的详细对比 (去看软一峰)

2.label 和 goto 虽然都是不推荐使用的,但是想看看

3.with语句,为什么耗性能,我猜测的是否正确,需要了解一下。


感叹:怪不得之后出现了TS,如函数,不强制类型的话,项目工程大了之后,太难读了。




学到了什么:

1.加分号可提高性能

2.数据类型的详细了解

3.++、-- 的骚操作

4.function 参数的了解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容