JS基础——变量
Posted bestchenyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS基础——变量相关的知识,希望对你有一定的参考价值。
- 引用类型:对象 数组 函数
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) {}
以上是关于JS基础——变量的主要内容,如果未能解决你的问题,请参考以下文章