摘要:內置函數和對象中內置了一些函數和對象,很多語言都會有內置的方法,直接可以調用開發。根據語法標準提供的內置函數包括和。注意基礎語法提供的內置函數和方法只有這些,像那是瀏覽器提供給我們的。強制類型轉換大家應該都知道。
js基礎 - 變量
*大家對js一定不會陌生,入門很簡單(普通入門),很多人通過網絡資源、書籍、課堂等很多途徑學習js,但是有些js基礎的只是往往被大家遺漏,本章就從js變量類型來說一說js
變量類型*js變量類型分為基本類型(或者叫值類型)和引用類型。值類型包括Number、Boolean、String、undefined、 null、Symbol (ES6 新增)。 引用類型包括Object 、Array、Function、Date、RegExp,值類型存放在棧內存中,引用類型的數據是存放在堆內存中。
值類型的數據在復制的時候會在棧內存中新建一個新的存儲區域用來存儲新的變量,和之前的值沒有任何關系。比如如下例子:
var a = "a" var b = a b = "b" console.log(a) // "a"
當b的值改變的時候,a的值不會跟著改變。這個很簡單,大家也都能理解。
下面說一下引用類型,定義一個對象的時候會在棧內存中存儲了一個指針,該指針指向堆內存中該對象的存儲地址,當復制這個對象賦值給另一個對象的時候,只是把該對象的指針地址賦值給了另一個對象變量,他們都指向同一個對象,所以當一個值改變的時候,另一個值會跟著改變,看下面的例子就會明白:
var obj1 = {name:"obj1"} var obj2 = obj1 obj2.name = "obj2" console.log(obj1.name) // "obj2"
大家可以執行一下上面的代碼,打印obj1.name的時候輸出"obj2",這就是因為對象是引用類型的變量。
JavaScript內置函數和對象js中內置了一些函數和對象,很多語言都會有內置的方法,直接可以調用開發。
根據ECMAscript(javascript語法標準)提供的內置函數包括Object、Array、Boolean、Number、String、Function、Date、Regexp和Error。內置對象包括Math和JSON。
注意:javascript基礎語法提供的內置函數和方法只有這些,像Window、Navigator那是瀏覽器提供給我們的。還有一點前面的集中都是內置函數而不是內置對象,最后的Math和JSON是內置對象,這個在我們以后的章節講原型鏈的時候就明白了,這里先記住就OK了。幾個常見問題 何時使用使用==何時使用===
這個問題大家應該都不陌生,在開發或者面試中會經常碰見的問題。那么答案到底是什么呢?
首先看到這個問題的時候先不要去想到底那些情況使用==那些情況使用===,我們應該首先去想這個問題背后涉及到那些知識點。很顯然,這里考的就是強制類型轉換,在使用==得時候會強制類型轉換,而使用===的時候不會發生強制類型轉換。強制類型轉換大家應該都知道。下面我們總結一下:
在if()條件判斷中0、""、NaN、null、undefined、false都會轉為false,判斷對象的一個屬性存在可以使用如下語法:
var obj = {} if(obj.name == null){...} // 相當于obj.name === null || obj.name === undefined /* 該方法只適用于判斷對象的屬性,不能用于直接判斷變量是否存在 */ if(someVal){...} // 這里瀏覽器會報錯
標準答案是:只有在判斷一個對象的屬性是否存在的時候使用==,其他都使用===。
typeof能否準確判斷變量類型這里首先想到的是對typeof和變量類型的理解,由于typeof只能區分基本類型的變量,所以不能準確的判斷變量類型。
Undefined -- Undefined Boolean -- Boolean Number -- Number String -- String ---------- Object -- Object Function -- Function Array -- Object null -- Object
所以答案是typeof只能判斷值類型的變量,不能判斷引用類型的變量,要想準確判斷變量的類型,可以在以后的原型的章節中介紹
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107110.html
摘要:內置函數和對象中內置了一些函數和對象,很多語言都會有內置的方法,直接可以調用開發。根據語法標準提供的內置函數包括和。注意基礎語法提供的內置函數和方法只有這些,像那是瀏覽器提供給我們的。強制類型轉換大家應該都知道。 js基礎 - 變量 *大家對js一定不會陌生,入門很簡單(普通入門),很多人通過網絡資源、書籍、課堂等很多途徑學習js,但是有些js基礎的只是往往被大家遺漏,本章就從js變量...
摘要:在此,我們首先根據變量的作用域,將變量劃分為三級,具體是全局變量局部變量和參數變量。 【摘要】本文是專為JavaScript入門者而總結的,總體上將JavaScript的基礎部分分成了九大塊,分別是變量、運算符、數組、流程控制結構、字符串函數、函數基礎、DOM操作基礎、文檔對象模型DOM和正則表達式。 【關鍵字】變量、運算符、數組、流程控制結構、函數、DOM、正則表達式。 本篇文章的主...
摘要:前言這段時間一直在消化作用域鏈和閉包的相關知識。而作用域鏈則是這套規則這套規則的具體運行。是變量對象的縮寫那這樣放有什么好處呢我們知道作用域鏈保證了當前執行環境對符合訪問權限的變量和函數的有序訪問。 前言:這段時間一直在消化作用域鏈和閉包的相關知識。之前看《JS高程》和一些技術博客,對于這些概念的論述多多少少不太清楚或者不太完整,包括一些大神的技術文章。這也給我的學習上造成了一些困惑,...
摘要:申明變量變量名以分號結束。如果一定要使用點的話,需要改變成駝峰式命名法。基礎篇練習看完以上的小伙伴,可以看兩個例子的效果,試著做一下。練習一點擊按鈕,設置方塊大小練習二點擊按鈕,增加或減小字體大小 1.JS存放在代碼中的位置 1.JS寫在行間 hello world 優點:直接,簡單 缺點:不方便復用和維護,不符合結構行為分離規范 2.JS寫在script ( 一般寫在body...
閱讀 3077·2021-09-22 15:20
閱讀 2599·2019-08-30 15:54
閱讀 1965·2019-08-30 14:06
閱讀 3114·2019-08-30 13:05
閱讀 2456·2019-08-29 18:36
閱讀 567·2019-08-29 15:10
閱讀 522·2019-08-29 11:17
閱讀 817·2019-08-28 18:11