变量类型
-
值类型:
每一个值就存在占据内存中的一个位置。
当把赋值到一个新的变量上,变量就新占了一个位置。var a = 100; var b = a; a = 200; console.log(b); //结果为100 //因为把a的值赋予b的时候,b的值就重新占了一个位置,a之后的变化就不会影响b。
-
引用类型(对象、数组、函数):
当变量引用了一个值,该值的位置和状态没有改变,变量也没有产生一个新的独立的值,仅是把变量的指针指向了值的位置。var a = {age:20};//a的值被指定到一个对象 var b = a; b.age = 21; console.log(a.age);//结果为21 //a和b的值都是指向{age:20}的,所以如果两者修改,都会使原值{age:20}改变。
typeof运算符
返回一个字符串,指示未经计算的操作数的类型。——更多说明
typeof运算 | 得出的结果 |
---|---|
underfined | underfined |
' abc ' | string(字符串) |
123 | number |
true | boolean(布尔值) |
只有以上四种能区分出详细类型 | |
{ } | object |
[ ] | object |
null(空指针,没有指向具体对象) | object(对象) |
console.log | function |
变量计算——强制类型转换
-
字符串拼接
a = 100 + '10'
——输出a的结果为‘10010’。(数值强制转化为字符串) -
= = 运算符
100 == '100' //true
0 == ' ' //true
——等号两边都转换成false
null == underfined //true
-
if 语句
if ( ) { }
——会把括号内的条件语句,强制转化成布尔值。 -
逻辑运算
" || "、" &&"、" ! " 等逻辑运算符号会把语句强制转换成布尔值。
测试一个变量会被判断成true还是false可以用以下方法
`console.log( ! ! a);——一个!强制转换成布尔值,两个!纠正判断值。
Wait me back
网友评论