亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

js基礎(chǔ)篇

solocoder / 2447人閱讀

摘要:安全防范機(jī)制未聲明變量聲明未初始化變量使用來(lái)做安全防范機(jī)制可以預(yù)防報(bào)錯(cuò)數(shù)組數(shù)組可以容納任何類(lèi)型的值。因此與進(jìn)行操作即可截取中的位數(shù)位。

安全防范機(jī)制

未聲明變量undeclared、聲明未初始化變量undefined

var a 
b 
typeof a //"undefined"
typeof b //"undefined"

使用typeof來(lái)做安全防范機(jī)制可以預(yù)防報(bào)錯(cuò)

if(typeof r !== "undefined"){
    //do
}
else{
    //do
}
數(shù)組

數(shù)組可以容納任何類(lèi)型的值。

delete刪除數(shù)組的某一項(xiàng)值后,數(shù)組長(zhǎng)度不會(huì)改變

var a = [1,2,3]
delete a[1]
console.log(a.length)
//3 

創(chuàng)建“稀松”數(shù)組(含有空白或空缺的數(shù)組)后,其中空白單元值為undefined,與將其顯示賦值為undefined有區(qū)別

數(shù)組通過(guò)數(shù)字進(jìn)行索引,但它也是對(duì)象,可以包含字符串鍵值和屬性,但是這些并不計(jì)算在數(shù)組長(zhǎng)度內(nèi)

var c = []
c[0] = 1
c ["dd"] = 2
console.log(c.length) // 1

注意:如果字符串值能夠被強(qiáng)制轉(zhuǎn)換為十進(jìn)制數(shù)字的話,它就可以被當(dāng)作數(shù)字索引來(lái)處理

var d = []
b[0] = 1
b["13"] = 12
console.log(b) // [1, 13: 12]0: 1 13: 12length: 14
類(lèi)數(shù)組

將類(lèi)數(shù)組轉(zhuǎn)化成真數(shù)組,使用數(shù)組工具函數(shù)indexOf() concat() forEach() slice().通過(guò)arguments對(duì)象將函數(shù)的參數(shù)當(dāng)作列表來(lái)訪問(wèn)在ES6中已廢棄

Array.form(arguemnts)實(shí)現(xiàn)返回參數(shù)列表的數(shù)組復(fù)本

字符串

js中字符串是不可變的,而(字符)數(shù)組是可變的。
字符串不變指的是字符串成員函數(shù)不會(huì)改變其原始值,而創(chuàng)建并返回一個(gè)新的字符串。而數(shù)組成員都是在其原始值上進(jìn)行操作。

var m = "foo"
var n = ["f","o","o"]
m[1] = 1
n[1] = 1
console.log(m,n)          // foo ["f", 1, "o"]
c = m.toUpperCase()
m === c                          //false
m                                  //"foo"
c                                 //"FOO"

許多數(shù)組函數(shù)用來(lái)處理字符串很方便,雖然字符串沒(méi)有這些函數(shù),但可以通過(guò)“借用”數(shù)組的非變更方法來(lái)處理字符串

通常方法:

Array.prototype.join.call()

字符串反轉(zhuǎn)
不能通過(guò)Aarry.prototype.reverse.call()來(lái)“借用”可變更成員函數(shù)reverse()

簡(jiǎn)單字符串反轉(zhuǎn)常用方法:

var c = "foo"
c
//將字符串轉(zhuǎn)成字符數(shù)組
.split("")
.reverse()
//將字符數(shù)組轉(zhuǎn)成字符串
.join("")                          //"o,o,f"
數(shù)字

js沒(méi)有真正意義上的“整數(shù)”,js中數(shù)據(jù)類(lèi)型基于IEEE754標(biāo)準(zhǔn)實(shí)現(xiàn)的,該標(biāo)準(zhǔn)通常也被稱(chēng)為”浮點(diǎn)數(shù)“。

較小的數(shù)值

怎樣來(lái)判斷0.1 + 0.2 == 0.3是否相等呢?

設(shè)置一個(gè)誤差范圍值,
ES6中定義Number.EPSILON

為ES6寫(xiě)的polyfill

 if(!Number.EPSILON){
     Number.EPSILON = Math.pow(2,-52)
 }
 

可以使用Number.EPSILON來(lái)比較兩個(gè)數(shù)字是否相等(即在指定誤差內(nèi))

檢查一個(gè)數(shù)是否為整數(shù)

ES6:Number.isInterger

polyfill

if(!Number.isInteger){
    Number.ismteger = function(num){
        return typeof num == "number" && num % 1 == 0
    }
}
檢查是否為一個(gè)安全的整數(shù)

polyfill

if(!Number.isSafeInteger){
    Number.isSafeInteger = function)(num){
        return Number.isInteger(num) && Math.abs(num) <= Num.MAX_SAFE_INTEGER
    }
}
32位有符號(hào)整數(shù)

整數(shù)最大能夠達(dá)到53位,有些數(shù)字操作適用32位數(shù)字。
a | 0可以將變量轉(zhuǎn)換成32位有符號(hào)的整數(shù),因?yàn)檎麛?shù)運(yùn)算符只適用32位整數(shù)。因此與0進(jìn)行操作即可截取a中的32位數(shù)位。

特殊數(shù)值

undefined null:既是類(lèi)型也是值

null 空值,特殊關(guān)鍵字,指曾賦過(guò)值,但是目前沒(méi)有值

undefined 標(biāo)志符,沒(méi)有值,未賦值

NaN

不是數(shù)字的數(shù)字(無(wú)法解析為常規(guī)十進(jìn)制/十六進(jìn)制)

var a = 2/"foo"          //NaN
typeof a                   //"number"

自反的值 NaN !== NaN

isNaN():檢查參數(shù)是否不是NaN,也不是數(shù)字

var a = 2/"foo"
var b = "foo"
window.isNaN(b)        //true
window.isNaN(a)        //true

ES6:Number.isNaN

polyfill:

if(!Number.isNaN){
    Number.isNaN = function(num){
        return num !== num
    }
}
無(wú)窮數(shù)
var a = -1 / 0       //-Infinity
var b = 1 / 0          //Infinity

var c = 1 / Infinity      //0
var d = -1 / Infinity     //-0
var e = Infinity / Infinity  // NaN
零值

0-0

var a = 0 / -3             //-0
var b = 0 * -3            //-0

加法和減法運(yùn)算得不到-0

要區(qū)分0和-0

function isNegZero (n) {
    n = Number(n)
    return (n===0) && (1/n === -Infinity)
}    
特殊等式

ES6: Object.is(..)

polyfill

 
 if(!Object.is){
     Object.is = function (v1,v2) {
         if(v1 === 0 && v2 === 0 ){
             return 1 / v1 === 1 / v2
         }
         if(v1 !== v1){
             return v2 !== v2
         }
         return v1 === v2
     }
 }

PS:數(shù)值考慮NaN 與 0 -0

值和引用

js對(duì)值和引用的賦值在語(yǔ)法上沒(méi)有區(qū)別,完全根據(jù)值的類(lèi)型

值復(fù)制:標(biāo)量基本類(lèi)型的值是不可更改的

null / undefined

字符串

數(shù)字 new Number()

boolean

symbol

引用復(fù)制:同時(shí)指向一個(gè)值,更改的也是同一個(gè)值

對(duì)象(數(shù)組和封裝對(duì)象)

函數(shù)

如果通過(guò)值復(fù)制來(lái)傳遞復(fù)合值,就需要為其創(chuàng)建一個(gè)復(fù)本,這樣傳遞的就不是原始值foo(a.slice())

相反,如果將標(biāo)量基本類(lèi)型值傳遞到函數(shù)并進(jìn)行更改,就需要將該值封裝到一個(gè)復(fù)合值中,然后通過(guò)引用復(fù)制進(jìn)行傳遞

function foo(wrapper){
    wrapper.a = 42
}

var obj = {
    a : 2
}

foo(obj)
obj.a                             //42

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/86709.html

相關(guān)文章

  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門(mén)

    摘要:個(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ě)文章的想法,到著手...

    madthumb 評(píng)論0 收藏0
  • JS基礎(chǔ)入門(mén)(一)

    摘要:申明變量變量名以分號(hào)結(jié)束。如果一定要使用點(diǎn)的話,需要改變成駝峰式命名法?;A(chǔ)篇練習(xí)看完以上的小伙伴,可以看兩個(gè)例子的效果,試著做一下。練習(xí)一點(diǎn)擊按鈕,設(shè)置方塊大小練習(xí)二點(diǎn)擊按鈕,增加或減小字體大小 1.JS存放在代碼中的位置 1.JS寫(xiě)在行間 hello world 優(yōu)點(diǎn):直接,簡(jiǎn)單 缺點(diǎn):不方便復(fù)用和維護(hù),不符合結(jié)構(gòu)行為分離規(guī)范 2.JS寫(xiě)在script ( 一般寫(xiě)在body...

    alighters 評(píng)論0 收藏0
  • JS基礎(chǔ)入門(mén)(一)

    摘要:申明變量變量名以分號(hào)結(jié)束。如果一定要使用點(diǎn)的話,需要改變成駝峰式命名法?;A(chǔ)篇練習(xí)看完以上的小伙伴,可以看兩個(gè)例子的效果,試著做一下。練習(xí)一點(diǎn)擊按鈕,設(shè)置方塊大小練習(xí)二點(diǎn)擊按鈕,增加或減小字體大小 1.JS存放在代碼中的位置 1.JS寫(xiě)在行間 hello world 優(yōu)點(diǎn):直接,簡(jiǎn)單 缺點(diǎn):不方便復(fù)用和維護(hù),不符合結(jié)構(gòu)行為分離規(guī)范 2.JS寫(xiě)在script ( 一般寫(xiě)在body...

    nevermind 評(píng)論0 收藏0
  • JS基礎(chǔ)入門(mén)(一)

    摘要:申明變量變量名以分號(hào)結(jié)束。如果一定要使用點(diǎn)的話,需要改變成駝峰式命名法。基礎(chǔ)篇練習(xí)看完以上的小伙伴,可以看兩個(gè)例子的效果,試著做一下。練習(xí)一點(diǎn)擊按鈕,設(shè)置方塊大小練習(xí)二點(diǎn)擊按鈕,增加或減小字體大小 1.JS存放在代碼中的位置 1.JS寫(xiě)在行間 hello world 優(yōu)點(diǎn):直接,簡(jiǎn)單 缺點(diǎn):不方便復(fù)用和維護(hù),不符合結(jié)構(gòu)行為分離規(guī)范 2.JS寫(xiě)在script ( 一般寫(xiě)在body...

    xuhong 評(píng)論0 收藏0
  • JS基礎(chǔ)--HTML DOM classList 屬性

    摘要:使用,程序員還可以用它來(lái)判斷某個(gè)節(jié)點(diǎn)是否被賦予了某個(gè)類(lèi)。現(xiàn)在是增加現(xiàn)在是刪除是否存在類(lèi)檢查是否含有某個(gè)類(lèi)結(jié)果是或者。屬性返回類(lèi)列表中類(lèi)的數(shù)量。查看元素有多少個(gè)類(lèi)名獲取獲取元素的所有類(lèi)名返回類(lèi)名在元素中的索引值。 頁(yè)面DOM里的每個(gè)節(jié)點(diǎn)上都有一個(gè)classList對(duì)象,程序員可以使用里面的方法新增、刪除、修改節(jié)點(diǎn)上的CSS類(lèi)。使用classList,程序員還可以用它來(lái)判斷某個(gè)節(jié)點(diǎn)是否被賦...

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

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

0條評(píng)論

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