js变量

1.js变量分为引用类型和值类型,引用类型包括:function,array,object。他们的区别,通过以下代码来解释:

 1 //值类型型变量
 2 var a=10;
 3 var b=a;
 4 b=20;
 5 console.log(a);//10;
 6 
 7 //引用型变量
 8 var a={
 9     age:10;
10 }
11 var b=a;
12 b.age=20;
13 console.log(a.age);//20

值类型在赋值给另一个变量时,两个变量是互不干扰,因为他们的内存是独立的。而引用类型是用一个指针指向一个内存空间,在赋值时,实际上是给新变量一个指针也指向这个内存空间所以,两个变量之间是相互影响的。

2.js变量类型

1 typeof 1;          //number
2 typeof true;       //boolean
3 typeof 'hello';    //string
4 typeof undefined;  //undefined
5 typeof null;       //object
6 typeof {};         //object
7 typeof [];         //object
8 typeof console.log //function

js的六种数据类型:number , boolean ,string ,undefined, object,function。

typeof只能区分出值类型变量,不能区分出引用类型变量,引用类型变量只能区分出funciton,不能区分object和array。

3.===与==的区别,分别是在什么场景下使用。

==在赋值时,会进行类型强制转换,而===不会。

1 console.log(10=='10') //true

==的使用场景:

1 if(obj.a==null){
2     //这里相当于obj.a===null||obj.a===undefined,简写形式
3     //这是jquery源码中的推荐写法
4 }

其他情况下,一律使用===

 

4.类型强制转换出现的几个地方

一,字符串拼接

二、使用==

三,if()条件判断中

四,逻辑运算符中

 1 var a=10+'10';
 2 console.log(a); //'1010';
 3 
 4 console.log(10=='10')//true (10转化成字符串'10')
 5 console.log(0=='');//true   (0和空字符串都会转换成false)
 6 console.log(null=undefined);//true  (null和undefined都会转换成false)
 7 
 8 var a=10;
 9 if(a){
10     //.... 这里会进入if语句,因为会把10强转为true
11 }
12 var a='';
13 if(a){
14     //... 这里不会进入if语句,因为会把''强转为false;
15 }
16 
17 console.log(10&&0);//0 (10会被强转为true,而&&符号的规则是前面为true,则结果为后面的值,相反,前面为false时,结果为前面的值);
18 console.log(''||'abc');//abc (''会被强转为false,而||符号的规则是前面为ture时,结果为前面,前面结果为false时,结果为后面,与&&正相反)
19 console.log(!window.abc)//false (window.abc值为undefined,经过!转换后就变成了true)

所以,判断一个值是为true还是false时,可以:

1 //判断一个值为true还是false
2 var a=10;
3 console.log(!!a);

 

5.js中的内置函数

Object
Array
Boolean
String
Number
Function
Date
RegExp
Error

6.如何理解json

json是一种数据格式,也可以看做是js的对象。

json的两个方法:

1 JSON.stringify({a:10,b:20});//将js对象转换成json数据
2 JSON.parse('{"a":10,"b":20}');//将json数据转化成js对象

 

posted @ 2018-03-04 14:39  shuangcherry  阅读(462)  评论(0编辑  收藏  举报