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