摘要:邏輯運(yùn)算判斷一個(gè)變量會(huì)被當(dāng)做還是內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開(kāi)發(fā)。根據(jù)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。
變量類(lèi)型和計(jì)算
1. 變量類(lèi)型
js變量類(lèi)型分為基本類(lèi)型(或者叫值類(lèi)型)和引用類(lèi)型。(按照存儲(chǔ)方式區(qū)分)
? 值類(lèi)型
值類(lèi)型:Number、String、Boolean、Null、Undefiend;這5種基本數(shù)據(jù)類(lèi)型是按值訪問(wèn)的,可以操作保存在變量中的實(shí)際的值。
對(duì)于值類(lèi)型,在復(fù)制變量的時(shí)候,會(huì)在新的變量上創(chuàng)建一個(gè)新值,這個(gè)新值和原值是相互獨(dú)立的,比如下面的例子:
var a=100; var b=100; a=200; console.log(b); //100
? 引用類(lèi)型
引用類(lèi)型值是保存在變量中的對(duì)象;引用類(lèi)型值就是指對(duì)象。
保存引用類(lèi)型值的變量,實(shí)際上保存的是一個(gè)指向該對(duì)象的指針。
當(dāng)復(fù)制保存著對(duì)象的某個(gè)變量時(shí),復(fù)制的其實(shí)是指針;復(fù)制操作結(jié)束后,兩個(gè)變量指向同一個(gè)對(duì)象。
對(duì)于引用類(lèi)型值,可以為其添加屬性和方法,也可以修改或者刪除其屬性和方法。
在為對(duì)象添加屬性和方法時(shí),操作的是實(shí)際的對(duì)象,因此,改變?nèi)魏我粋€(gè)變量,都會(huì)影響另外一個(gè)變量。比如下面的例子:
var a={age:100}; var b=a; b.age=20; console.log(a.age); //20
注意: 基本類(lèi)型值之間的比較,只是單純的值的比較。
引用類(lèi)型值的比較并非值的比較:即使兩個(gè)對(duì)象包含相同的屬性和值,它們也是不相等的;各個(gè)索引元素完全相等的兩個(gè)數(shù)組也不相等。
引用類(lèi)型值的比較是引用的比較,當(dāng)且僅當(dāng)它們引用同一個(gè)對(duì)象時(shí),它們才相等。
? typeof 運(yùn)算符詳解
由下面的例子,我們可以看出typeof只能判斷值類(lèi)型的變量,不能判斷引用類(lèi)型的變量,所以不能準(zhǔn)確的判斷變量類(lèi)型。
typeof(undefined); // undefined typeof("abc"); // string typeof(123); // number typeof(true); // boolean typeof({}); // object typeof([]); // object typeof(null); // object typeof(console.log); // function
2. 變量計(jì)算
? 強(qiáng)制類(lèi)型轉(zhuǎn)換
以下四種情況會(huì)發(fā)生強(qiáng)制類(lèi)型的轉(zhuǎn)換:
字符串的拼接
var a=100+10; // 100 var b=100+"10"; // "10010"
==運(yùn)算符
console.log((100=="100")); // true console.log((0=="")); //true console.log((null==undefined)); // true
在使用==得時(shí)候會(huì)強(qiáng)制類(lèi)型轉(zhuǎn)換,而使用===的時(shí)候不會(huì)發(fā)生強(qiáng)制類(lèi)型轉(zhuǎn)換。
==計(jì)算要慎用,會(huì)出現(xiàn)上述問(wèn)題,如果使用===,則不會(huì)出現(xiàn)上述問(wèn)題。
判斷對(duì)象的一個(gè)屬性存在可以使用如下語(yǔ)法:
var obj = {} if(obj.name == null){...} // 相當(dāng)于obj.name === null || obj.name === undefined /* 該方法只適用于判斷對(duì)象的屬性,不能用于直接判斷變量是否存在 */ if(someVal){...} // 這里瀏覽器會(huì)報(bào)錯(cuò)
if語(yǔ)句
如下例子,if()判斷中會(huì)對(duì)()里的值進(jìn)行強(qiáng)制轉(zhuǎn)換為布爾類(lèi)型。if()條件判斷中0、""、NaN、null、undefined、false都會(huì)轉(zhuǎn)為false。
var b=100; if(b){ // ... }
邏輯運(yùn)算
console.log((10 && 0)); // 0 console.log(("" || "abc")); //"abc" console.log((!window.abc)); // true // 判斷一個(gè)變量會(huì)被當(dāng)做 true 還是 false var a=100; console.log(!!a); // true
3.JS內(nèi)置函數(shù)和對(duì)象
js中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開(kāi)發(fā)。
根據(jù)ECMAscript提供的內(nèi)置函數(shù)包括Object、Array、Boolean、Number、String、Function、Date、Regexp和Error。內(nèi)置對(duì)象包括Math和JSON。
注意:javascript基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像Window、Navigator那是瀏覽器提供給我們的。還有一點(diǎn)前面的集中都是內(nèi)置函數(shù)而不是內(nèi)置對(duì)象,最后的Math和JSON是內(nèi)置對(duì)象
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93644.html
摘要:好程序員前端培訓(xùn)入門(mén)之基礎(chǔ)知識(shí)梳理匯總,前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。作用域鏈的前端,始終是當(dāng)前執(zhí)行代碼所在環(huán)境的變量對(duì)象。 好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總,Web前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。不論是專(zhuān)業(yè)還是非專(zhuān)業(yè),有基礎(chǔ)亦或是無(wú)基礎(chǔ),都想通過(guò)學(xué)習(xí)Web前端實(shí)現(xiàn)高薪就業(yè)。不過(guò),學(xué)習(xí)要一...
摘要:好程序員前端培訓(xùn)入門(mén)之基礎(chǔ)知識(shí)梳理匯總,前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。作用域鏈的前端,始終是當(dāng)前執(zhí)行代碼所在環(huán)境的變量對(duì)象。 好程序員Web前端培訓(xùn)入門(mén)之JS基礎(chǔ)知識(shí)梳理匯總,Web前端工程師是當(dāng)前各大企業(yè)都比較稀缺的人才,薪資待遇和就業(yè)前景都很不錯(cuò)。不論是專(zhuān)業(yè)還是非專(zhuān)業(yè),有基礎(chǔ)亦或是無(wú)基礎(chǔ),都想通過(guò)學(xué)習(xí)Web前端實(shí)現(xiàn)高薪就業(yè)。不過(guò),學(xué)習(xí)要一...
摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...
摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類(lèi)型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門(mén)很簡(jiǎn)單(普通入門(mén)),很多人通過(guò)網(wǎng)絡(luò)資源、書(shū)籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...
閱讀 3032·2021-11-24 09:39
閱讀 2271·2021-10-08 10:05
閱讀 2761·2021-09-24 13:52
閱讀 1580·2021-09-22 15:07
閱讀 598·2019-08-30 15:55
閱讀 1816·2019-08-30 15:53
閱讀 698·2019-08-30 15:44
閱讀 3124·2019-08-30 11:20