javascript基础知识讲解基础知识讲解
本篇适合javascript新手或者学了前端一段时间,对js概念不清晰的同学~~。
学习目的学习目的
本文针对javascript基础薄弱的同学,可以加深对javascript的理解。
本文将讲述以下几点对于初学者开说javascript(有的是大部分语言都有的)的坑
讲解内容如下:讲解内容如下:
1. 连等
2. i++
3. 包装对象
4. 引用类型
5. && 与 ||
讲解部分讲解部分
1. 连等连等
小试牛刀小试牛刀
连等是常见的表达式,但是并不是所有情况都适合连等,连等只适用于字面量并不适用于引用类型连等只适用于字面量并不适用于引用类型。
// 字面量连等得到想要的结果
var a,b;
a = b = 2;
a // 2
b // 2
// 引用类型连等不可预测
var arr1, arr2;
arr1 = arr2 = [] arr1[0] = 10
arr2[0] // 10
//引用类型连等使得两个引用指向一个对象,操作其中一个,两个值都变
以上代码是常见的连等,有时候我们需要两个变量同赋值为一个值,我们就这样来操作,但是,如果是引用类型可不能连等赋
值哦。
此外,连等赋值会有一个很大的漏洞,就是会将变量泄露到全局中去,上面代码我们没有将其泄露,但看下面代码:
function fn (num) {
var a = b = num;
a // num
b // num
}
fn(10)
a // 报错
b // 10
// 我们并不没有定义全局变量b
可以看到,我们执行了fn函数后,全局作用域中出现了b变量,这是为什么?看 var a = b = num这句话,这句话可以分成两句
来看
var a
a = b = num
//只声明了a
我们其实只声明了a变量,连等的b并没有声明,由此可以知道,b被挂在了全局的window对象上,造成了变量泄露到了全局。
初出茅庐初出茅庐
上面只是简单的例子,接下来我们看一个复杂点的例子
var a = {x: 1}
var b = a
a.x = a = {y: 1}