美文网首页
JS基础知识点

JS基础知识点

作者: yzmt | 来源:发表于2020-09-14 11:36 被阅读0次

逻辑运算符

undefined, null, NaN, "", 0, false这六个值转成布尔值均为false

&&(与)

&& 从第一个表达式依次往后看, 如果遇到的表达式转成布尔值为false, 则暂停, 将该表达式的值返回; 如果从头到尾转成布尔值均为true, 则将最后一个表达式的值返回

let a = 1 && 2
console.log(a) // 2

let a = 1 && ""
console.log(a) // ""

let a = 0 && ""
console.log(a) // 0

let a = 2 && "" && 4
console.log(a) // ""
....
||(或)

||从第一个表达式依次往后看, 如果遇到的表达式转成布尔值为true, 则暂停, 将该表达式的值返回; 如果从头到尾转成布尔值均为false, 则将最后一个表达式的值返回

let a = 1 || 2
console.log(a) // 1

let a = 0 || 1
console.log(a) // 1

let a = 0 || ""
console.log(a) // ""

let a = 1 || "" || null
console.log(a) // 1

let a = 0 || 2 || null
console.log(a) // 2
!(非)

!将表达式先转换成布尔值再取反

函数预编译四部曲

  • 创建 AO 对象 Activation Object(执行期上下文,作用是理解的作用域,函数产生
    的执行空间库)
  • 找形参和变量声明,将变量和形参名作为 AO 属性名,值为 undefined
相当于 AO{
 a : undefined,
 b : undefined
}
  • 将实参值和形参统一(把实参值传到形参里)
  • 在函数体里面找函数声明,值赋予函数体
    (先看自己的 AO,再看全局的 GO

作用域

function a (){
function b (){
 var bb = 234;
 aa = 0;
}
var aa = 123;
b();
console.log(aa)
}
var glob = 100;
a();
image.png
image.png
image.png
image.png

闭包的作用

  • 实现公有变量
  • 可以做缓存(存储结构)
  • 可以实现封装, 属性私有化
  • 模块化开发, 防止污染全局变量

相关文章

网友评论

      本文标题:JS基础知识点

      本文链接:https://www.haomeiwen.com/subject/irwcphtx.html