- 引用类型:对象 数组 函数
1 var a = { age:22 }; 2 var b =a ; 3 b.age = 21; 4 console.log(a.age);// 21 传递的是地址, a,b同地址
值类型:
var a =100; var b =a; b = 200; console.log(a);// 100 a和b是两个不同的地址,改变b的值不会改变a的值
typeof 运算符只能区分值类型的详细类型,不能区分除了function以外的引用类型的详细类型
console.log(typeof undefined);// undefined console.log(typeof ‘abc‘);// string console.log(typeof 123);// number console.log(typeof true);//boolean console.log(typeof {});//object console.log(typeof []);//object console.log(typeof null);//object console.log(typeof console.log);//function
- 变量计算——强制类型转换(值类型)
以下4种情况有可能发生强制类型转换:
-
- 字符串拼接
- "=="运算符
- if语句
- 逻辑运算
1、字符串拼接 强制类型转换
var a =100 +10;//110 var b = 100+‘10‘;//10010
2、“==”运算符 强制类型转换
console.log( 100 == ‘100‘);//true 将100转换成字符串‘100’ console.log( 0 == ‘‘);//true 0和‘‘转成false比较 console.log( null == undefined);//true null和undefined 转成false比较
3、if语句 强制类型转换
var a = true; if (a) { /*执行*/ }; var b = 100; if (b) { /*b转换成true 执行*/ } var c = ‘‘; if (c) { /*c转换成false 不执行*/ }
4、逻辑运算符 强制类型转换
console.log( 10 && 0);//0 console.log( ‘‘ || ‘abc‘);// abc console.log( !window.abc );// true
相关问题:
1、判断一个变量会被当做true还是false
var a = 100; console.log(!!a);
2、何时用"==",何时用‘‘==="?
== 有强制类型转换 === 不会
if (obj.a == null) { //这里相当于 obj.a === null || obj.a === undefined ,简写形式 //这是jquery源码中推荐的写法,除此之外 都用 === }
3、JS 中有哪些内置函数——数据封装对象
Object Array Boolean Number String Function Date RegExp Error
4、JS按存储方式区分变量类型
5、如何理解JSON
json就是JS的一个对象(有属性,有方法),同时也是一种格式。
JSON.Stringify({a:10,b:20});//对象转字符串 JSON.parse(‘{"a":10,"b":20}‘);// 字符串转对象
6、if中表示false的东东:
if (0) {} if (NaN) {} if (‘‘) {} if (null) {} if (false) {}
原文地址:https://www.cnblogs.com/bestchenyan/p/9615645.html
时间: 2024-10-23 03:10:51