1.** ‘=’** assignment(分配)赋值过程
是从右到左的;在连等的情况下;
var a = b = 5;
从右都左以及声明提升的作用下;可以看做下面代码
var a; //声明提升
b = 5; //右边先完成赋值;b并没有声明,成为全局变量(在非严格模式下)
a = b; //最后左边赋值;
当该代码在一个函数内声明,在函数外也可以调用到b这个变量;
function getA() {
var a = b = 5;
return a;
}
console.log(a) //ReferenceError 就是连声明都没有的错误和undefined不同,因为a只在函数内部声明
console.log(typeof(a) == 'undefined') //typeof会将没有声明的变量定义为undefined
console.log(b) // 5;
console.log(getA())// 5;
- 赋值覆盖
在字符串变量中,声明的字符串只能通过赋值来替换原有的字符串,通过索引进行单个字符的修改的是不行的;
var str = ''Bappy";//修改成happy;
str[0] = 'h';//索引修改是不行的;
str = 'happy'; //重新进行变量赋值才可以修改原有的字符串
数组变量则可以通过索引进行修改;
- 数字字符串与number数据对比
在booleen中那个
'3' == 3 //true;
'3' === 3 //false;
'2' != //false;
'2' !== // true;
'2' < 3 true;
'2' <= 3 true;