天天看點

變量類型和計算

  • JS中适用typeof能得到的哪些類型
  • 何時使用===何時使用==
  • JS中有哪些内置函數
  • JS變量按照存儲方式區分為哪些類型,并描述其特點
  • 如何了解JSON

變量類型

  • 值類型vs引用類型
  • typeof 運算符詳解
//值類型
var a = ;
var b = a;
a = ;
console.log(b)//100

//引用類型
var a = {age:};
var b = a;
b.age = ;
console.log(a.age);//21
           

值類型指派時相當于把變量指派一份,是以兩個變量啊a,b是隔離的,互相不受影響;

引用類型相當于指向同一個對象,a,b指向同一個對象,那麼修改一個變量的屬性相當于修改引用對象的屬性,是以a,b會互相影響;

值類型:undefined string number Boolean

引用類型:對象,數組,函數;

引用類型有個特點可以無限擴充屬性;

JS中适用typeof能得到的哪些類型?

typeof undefined;//undefined
typeof 'abc';//string
typeof ;//number
typeof true;//boolean



typeof {};//object
typeof [];//object
typeof null;//object
typeof console.log;//function
           

前面4個是值類型,後面的引用類型;

typeof null是引用類型是因為null也是一個指針,但是它指向的是一個空對象;

typeof console.log可以檢測出是function類型是因為函數類型是js中一個很重要的存在。

typeof隻能區分值類型,不能區分引用類型;

如何判斷對象的資料類型?

JavaScript中有6中資料類型:string,boolean,object,null,undefind.number

方法一:typeof

typeof隻能區分值類型,不能區分引用類型,即隻能判斷string ,Boolean,null,undefined,number,其餘都傳回object,除了function外。

方法二:instanceof

用來判斷數組和對象,不能用于判斷string和Boolean。

方法三:constructor

數組和對象。

方法四:利用tostring()

object.prototype.toString().call()

方法五:利用jquery的 .isPlainObject(); . i s P l a i n O b j e c t ( ) ; .isArray(obj);$.isFunction(obj)進行判斷。

變量計算–強制類型轉換

  • 字元串拼接
  • == 運算符
  • if語句
  • 邏輯運算
== ‘’//true
 == ''//true
null == undefined // true


var a = true;
if(a){
//}
var b = ;
if(b){}
//都會發生強制類型轉換


console.log(&&)//0
console.log(''||'abc')//abc
console.log(!window.abc)//true


//判斷一個變量會當做true還是false
var a = ;
console.log(!!a);
           

何時使用===何時使用==

在一般的判斷中我們都應該使用===,但是在代碼中obj.a==null代表obj.a===null || obj.a===undefined,是以隻有在判斷對象中某個屬性的時候用==null,其他地方都使用===。

js有哪些内置函數

object

function

Boolean

string

number

date

array

regexp

error

JS變量按照存儲方式區分為哪些類型,并描述其特點

引用類型 值類型

值類型的值指派後隔離的;

引用類型不會,他們引用的是同一個對象;

如何了解JSON

  • 隻不過是一個對象而已,同時也是一個資料格式;
  • 有兩個常用API
JSON.stringify({a:,b:})//對象轉化成字元串
JSON.parse({'a':,'b':})//字元串轉化成對象
           

繼續閱讀