Javascript学习笔记(一)

90 阅读1分钟

1、JavaScript引擎是 单线程

JavaScript是单线程的,以轮转时间片的方式模拟多线程

轮转时间片:轮流执行多个任务的代码片段

JavaScript将任务划分成代码片段,并随机排列组成队列,按照该队列顺序将代码片段推进js进程执行以模拟多线程

2、script 的type属性

type属性规定脚本的MINE类型(MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。)
当MIME_type不是以下值的时候,该script里的代码不会被执行(该副作用可以用来作为模板)

3、undefined、null

比较
undefined == false False:
null==false False
undefined== null True
undefined=== null false

规范规定undefined、null比较相等性时不能转化成其他值且两者相等。

两者都是代表无效值

因为undefined(undefined) 和null(object)不是同个类型故undefined === null 等于false

4、NaN 是number类型

5、函数表达式

var test = function test1(){
    console.log('test')
}
console.log(test1)

函数表述中的命名函数的名称只能在函数体内部作为局部变量使用,以此避免使用非标准的arguments.callee

参考:developer.mozilla.org/zh-CN/docs/…

6、IIFE (immediately invoked function 立即执行函数)

立即执行函数执行完会释放函数
两种形式:
( function(){…} )()
( function(){…} () )
()圆括号运算符,但凡出现运算符的语句都是一个表达式。
立即执行函数只有在函数表达式才会执行

参考:www.cnblogs.com/lunawzh/p/5…

7、arguments.callee/arguments.caller

arguments.callee:引用当前正在执行的函数
arguments.caller:引用调用当前正在执行的函数的函数
在严格模式下不允许使用arguments.caller和arguments.caallee