国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript基礎(chǔ)細(xì)節(jié)

wangxinarhat / 3039人閱讀

摘要:語(yǔ)法部分屬性默認(rèn)的就是,所以不必顯式指定為。不強(qiáng)制在每個(gè)語(yǔ)句結(jié)尾加,會(huì)自動(dòng)加分號(hào),但是在某些情況下會(huì)改變程序的語(yǔ)義,所以最好主動(dòng)加。實(shí)際上,默認(rèn)有一個(gè)全局對(duì)象。

語(yǔ)法部分:

1.type 屬性: 默認(rèn)的 type 就是 javascript, 所以不必顯式指定 type 為 javascript。
2.javascript 不強(qiáng)制在每個(gè)語(yǔ)句結(jié)尾加 “;” , javascript 會(huì)自動(dòng)加分號(hào), 但是在某些情況下會(huì)改變程序的語(yǔ)義, 所以最好主動(dòng)加 “;”。
3.兩個(gè)相等運(yùn)算符比較

‘==’ 相等( 值相等 ), 它會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型再比較, 很多時(shí)候會(huì)得到非常詭異的結(jié)果

‘===’ 嚴(yán)格相等( 數(shù)據(jù)類型和值都相等 ) , 它不會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型, 如果數(shù)據(jù)類型不一致, 返回false, 如果一致, 再比較
4.NaN 與所有其他值都不相等, 包括它自己:

NaN === NaN; // false

唯一能判斷 NaN 的方法是通過 isNaN() 函數(shù)

isNaN(NaN); // true
5.浮點(diǎn)數(shù)比較

浮點(diǎn)數(shù)在運(yùn)算過程中會(huì)產(chǎn)生誤差, 因?yàn)橛?jì)算機(jī)無法精確表示無限循環(huán)小數(shù)。 要比較兩個(gè)浮點(diǎn)數(shù)是否相等, 只能計(jì)算它們之差的絕對(duì)值, 看是否小于某個(gè)閾值:Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
6.null 和 undefined

大多數(shù)情況下,我們都應(yīng)該用 null , undefined 僅僅在判斷函數(shù)參數(shù)是否傳遞的情況下有用
7.出于代碼的可讀性考慮,創(chuàng)建數(shù)組建議使用 "[ ]",而不使用 "new Array";
8.如果一個(gè)變量沒有通過 "var" 聲明就被使用,那么該變量就自動(dòng)被聲明為全局變量。使用 var 聲明的變量則不是全局變量,它的范圍就該被限制在該變量被聲明的函數(shù)體內(nèi)
9.啟用 strict 模式(強(qiáng)制通過 var 聲明變量)
10.多行字符串用反引號(hào)表示
11.使用模版字符串
12.要獲取字符串某個(gè)指定位置的字符,使用類似 Array 的下標(biāo)操作, 索引號(hào)從 0 開始。 字符串是不可變的, 如果對(duì)字符串的某個(gè)索引賦值, 不會(huì)有任何錯(cuò)誤,但是也沒有任何效果
13.直接給 Array 的 length 賦一個(gè)新的值會(huì)導(dǎo)致 Array 大小的變化
14.如果通過索引賦值時(shí), 索引超過了范圍, 同樣會(huì)引起 Array 大小的變化, 但是不會(huì)有任何錯(cuò)誤, 在編寫代碼時(shí), 不建議直接修改 Array 的大小, 訪問索引時(shí)要確保索引不會(huì)越界
15.數(shù)字 1 和字符串 "1" 是不同的元素
16.slice() 的起止參數(shù)包括開始索引, 不包括結(jié)束索引。
17.如果不給 slice() 傳遞任何參數(shù), 它就會(huì)從頭到尾截取所有元素。 利用這一點(diǎn), 我們可以很容易地復(fù)制一個(gè) Array
18.空數(shù)組繼續(xù) pop 不會(huì)報(bào)錯(cuò),而是返回 undefined
19.concat() 方法并沒有修改當(dāng)前 Array, 而是返回了一個(gè)新的 Arrayconcat() 方法可以接收任意個(gè)元素和 Array, 并且自動(dòng)把 Array 拆開, 然后全部添加到新的 Array
20.javascript 對(duì)象屬性名必須是一個(gè)有效的變量名。 如果屬性名包含特殊字符, 就必須用 "" 括起來
21.如果我們要檢測(cè) xiaoming 是否擁有某一屬性, 可以用in操作符, 不過要小心, 如果 in 判斷一個(gè)屬性存在, 這個(gè)屬性不一定是xiaoming 的, 它可能是 xiaoming 繼承得到的
22.要判斷一個(gè)屬性是否是 xiaoming 自身?yè)碛械模皇抢^承得到的,可以用 hasOwnProperty() 方法
23.JavaScript把 nullundefined0NaN 和空字符串 "" 視為 false,其他值一概視為 true
24.由于 Array 也是對(duì)象, 而它的每個(gè)元素的索引被視為對(duì)象的屬性, 因此, for ... in 循環(huán)可以直接循環(huán)出 Array 的索引
25.for ... in 循環(huán)由于歷史遺留問題, 它遍歷的實(shí)際上是對(duì)象的屬性名稱, for ... of` 循環(huán)則完全修復(fù)了這些問題, 它只循環(huán)集合本身的元素

函數(shù)部分:

1.函數(shù)如果沒有 return 語(yǔ)句, 函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果, 只是結(jié)果為 undefined
2.由于 JavaScript 允許傳入任意個(gè)參數(shù)而不影響調(diào)用, 因此傳入的參數(shù)比定義的參數(shù)多也沒有問題, 雖然函數(shù)內(nèi)部并不需要這些參數(shù), 傳入的參數(shù)比定義的少也沒有問題
3.關(guān)鍵字 arguments 類似 Array 但它不是一個(gè) Array
4.不在任何函數(shù)內(nèi)定義的變量就具有全局作用域。 實(shí)際上, JavaScript 默認(rèn)有一個(gè)全局對(duì)象 window。 以變量方式 var foo = function () {} 定義的函數(shù)實(shí)際上也是一個(gè)全局變量。
5.用 var that = this; , 你就可以放心地在方法內(nèi)部定義其他函數(shù),而不是把所有語(yǔ)句都堆到一個(gè)方法中。 對(duì)于普通函數(shù)調(diào)用, 通常把 this 綁定為 null
6.apply()call()的唯一區(qū)別

apply() 把參數(shù)打包成 Array 再傳入;

call() 把參數(shù)按順序傳入。

7.所有實(shí)例的原型引用的是函數(shù)的 prototype 屬性
8.箭頭函數(shù)內(nèi)部的 this 是詞法作用域( 寫代碼或者定義時(shí)確定的 作用域,動(dòng)態(tài)作用域是在運(yùn)行時(shí)確定 ),由上下文確定。箭頭函數(shù)完全修復(fù)了 this 的指向,this 總是指向詞法作用域

標(biāo)準(zhǔn)對(duì)象

1.如果我們?cè)谑褂?NumberBooleanString 時(shí), 沒有寫 newNumber()Boolean()String() 被當(dāng)做普通函數(shù),把任何類型的數(shù)據(jù)轉(zhuǎn)換為 numberbooleanstring 類型(注意不是其包裝類型)

2.不要使用 new Number()new Boolean()new String() 創(chuàng)建包裝對(duì)象;

3.用 parseInt()parseFloat() 來轉(zhuǎn)換任意類型到 number

4.用 String() 來轉(zhuǎn)換任意類型到 string ,或者直接調(diào)用某個(gè)對(duì)象的 toString() 方法;

5.通常不必把任意類型轉(zhuǎn)換為 boolean 再判斷,因?yàn)榭梢灾苯訉?if (myVar) {...}

6.typeof 操作符可以判斷出 numberbooleanstringfunctionundefined

7.判斷 Array 要使用 Array.isArray(arr)

8.判斷 null 請(qǐng)使用 myVar === null

9.判斷某個(gè)全局變量是否存在用 typeof window.myVar === "undefined"

10.函數(shù)內(nèi)部判斷某個(gè)變量是否存在用 typeof myVar === "undefined"

11.任何對(duì)象都有 toString() 方法嗎? nullundefined 就沒有!

12.number 對(duì)象調(diào)用 toString() 報(bào) SyntaxError

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/92468.html

相關(guān)文章

  • 重學(xué)前端學(xué)習(xí)筆記(六)--JavaScript類型有哪些你不知道的細(xì)節(jié)

    摘要:的碼點(diǎn)被稱為基本字符區(qū)域。關(guān)于的介紹,我準(zhǔn)備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對(duì)象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會(huì)報(bào)錯(cuò)。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完...

    Lsnsh 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(六)--JavaScript類型有哪些你不知道的細(xì)節(jié)

    摘要:的碼點(diǎn)被稱為基本字符區(qū)域。關(guān)于的介紹,我準(zhǔn)備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對(duì)象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會(huì)報(bào)錯(cuò)。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完...

    joyvw 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(六)--JavaScript類型有哪些你不知道的細(xì)節(jié)

    摘要:的碼點(diǎn)被稱為基本字符區(qū)域。關(guān)于的介紹,我準(zhǔn)備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對(duì)象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會(huì)報(bào)錯(cuò)。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完...

    zlyBear 評(píng)論0 收藏0
  • 你需要知道的 javascript細(xì)節(jié)

    摘要:代碼示例語(yǔ)法和方法類似,不同的是,傳入調(diào)用函數(shù)的參數(shù)變成以數(shù)組的形式傳入,即改造上面的示例就是方法用于將函數(shù)體內(nèi)的綁定到某個(gè)對(duì)象,然后返回一個(gè)新函數(shù)。類型包裝對(duì)象數(shù)值字符串布爾值在一定條件下,也會(huì)自動(dòng)轉(zhuǎn)為對(duì)象,也就是原始類型的包裝對(duì)象。 現(xiàn)在的前端框架層出不窮,3個(gè)月就要重新入門一次前端的現(xiàn)狀,讓我們來不及學(xué)好基礎(chǔ)就開始上手框架。常常就因?yàn)檫@樣,我們會(huì)很快到達(dá)基礎(chǔ)基礎(chǔ)技術(shù)瓶頸,基礎(chǔ)是所...

    Airy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<