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

資訊專欄INFORMATION COLUMN

【JS】關于JS的一些知識點(JS基礎,純記錄)

SwordFly / 1420人閱讀

摘要:如何讓根據拆箱轉換,以及的隱式轉換,可以如下寫為什么計算機中所有的數據都是以二進制存儲的,所以在計算機計算時要把數據先轉換成二進制進行計算,然后把計算結果轉換成十進制。會存在精度丟失問題和的二進制都是以無線循環的小數的二進制的二進制

本想著記筆記里,但是筆記里沒有分類,還是以文章的形式,當個人總結吧,這一篇就當作JS基礎篇的記錄吧,有修改的和新增的持續更新~

關于JS的一些小技巧
1:JS中toString和valueof()區別

toString():返回一個反映這個對象的字符串

valueOf():返回它相應的原始值

console.log([1,2,3].toString()); // "1,2,3"
console.log(new Date(2015,4,4).toString()); // "Mon May 04 2015 00:00:00 GMT+0800
c"
console.log(new Date(2015,4,4).valueOf()); //  "1430668800000  "

注意: Math和Error沒有valueOf方法

字符串轉換為數字的三種方法js
1:pasreInt()parseFloat()方法:轉換不成功的返回NaN

2:強制類型轉換: Boolean(val)/Number(val)/String(val)

3: 利用js變量弱類型轉換:*1 (實際上調用了.valueOf方法),然后使用Number.isNaN來判斷是否為NaN,或者使用a!==a來判斷是否為NaN,因為NaN!==NaN

"32"*1  //32
"ds"*1  //NaN

也可以使用+來轉化為數字,一元正號位于操作數前面,計算操作數的數值,如果操作數不是一個數值,會嘗試將其轉壞為一個數值,參考見 https://developer.mozilla.org...

+"123" //123
""ds"  //NaN
+null  //0
+undefined //NaN
+{valueOf: () => "3"}  //3
2:Boolean可以過濾掉數組的所有假值

除了false,null,undefined,0,"",NaN,都是假值

const compact = arr => arr.filter(Boolean)
compact([0, 1, false, 2, "", 3, "a", "e" * 23, NaN, "s", 34])             // [ 1, 2, 3, "a", "s", 34 ]
3:雙位運算符

雙否定位操作符的優勢在于它執行相同的操作運行速度更快

Math.floor(4.9) === 4簡寫為 ~~4.9 === 4

注意:對于負數來說結果不同

ps: 還可以用 4.9 | 0 === 4

4:判斷奇偶數

num & 1 //奇數返回,偶數返回0

5:精確到指定位數的小數2
const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`)
round(1.245, 2) //1.25
6:程序中所有的等于判斷都要用===,除了obj.c == null這種情況

obj.c == null 等價于obj.c === undefined/null

7:變量前加兩個感嘆號,判斷變量的值

如果值為真,首先可以排除undefined和null,根據對象類型,可以做出如下判斷

數值類型:表示不是0,并且有確定含義的值(包括無窮大)

數組,對象,函數:只能表示不是undefined或null,并不能判斷是否有元素和內容。

var a = undefined/null !!a === false
var b = 0   !!b === false
var c = ""  !!c === false
//  其他都為true

var d = []/{} !!d === true

作為條件表達式,不需要使用!!進行轉換,JS會自動轉換,!!就只將類型轉換為Boolean值

if (!!value) {}  // 等價與下面
if (value) {}
原始類型和引用類型比較
1:String和Number比較,會先將String轉換成Number類型
123 == "123"  //true
"" == 0  //true
2:null和undefined比較結果是true,除此之外,null、undefined和其他任何結果值的比較值都為false
null == undefined //true
null == "" //false
null == 0 //fasle
null == false //false
undefined == "" //false
undefined == 0 //false
undefined == false //false
3:當原始類型和引用類型做比較時,對象類型會依照Toprimitive規則轉換為原始類型
"[object Object] == {}" //true
"1,2,3" == [1, 2, 3] //true
[] == ![] //true

關于第三個:!的優先級高于==,![]首先會被轉換成false,然后根據上面第三點,false轉換成Number類型0,左側[]轉化成為0,兩側比較相等。

4:如何讓:a==1 && a==2 && a==3
根據拆箱轉換,以及==的隱式轉換,可以如下寫:

const a = {
   value:[3,2,1],
   valueOf: () => {return this.value.pop(); },
} 
5:為什么0.1+0.2 !=0.3
計算機中所有的數據都是以二進制存儲的,所以在計算機計算時要把數據先轉換成二進制進行計算,然后把計算結果轉換成十進制。

會存在精度丟失問題

0.10.2的二進制都是以1100無線循環的小數

0.1的二進制:
0.0001100110011001100110011001100110011001100110011001101

0.的二進制:
0.001100110011001100110011001100110011001100110011001101

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/104815.html

相關文章

  • 深入理解js

    摘要:詳解十大常用設計模式力薦深度好文深入理解大設計模式收集各種疑難雜癥的問題集錦關于,工作和學習過程中遇到過許多問題,也解答過許多別人的問題。介紹了的內存管理。 延遲加載 (Lazyload) 三種實現方式 延遲加載也稱為惰性加載,即在長網頁中延遲加載圖像。用戶滾動到它們之前,視口外的圖像不會加載。本文詳細介紹了三種延遲加載的實現方式。 詳解 Javascript十大常用設計模式 力薦~ ...

    caikeal 評論0 收藏0
  • 前端識點整理

    摘要:難怪超過三分之一的開發人員工作需要一些知識。但是隨著行業的飽和,初中級前端就業形勢不容樂觀。整個系列的文章大概有篇左右,從我是如何成為一個前端工程師,到各種前端框架的知識。 為什么 call 比 apply 快? 這是一個非常有意思的問題。 作者會在參數為3個(包含3)以內時,優先使用 call 方法進行事件的處理。而當參數過多(多余3個)時,才考慮使用 apply 方法。 這個的原因...

    Lowky 評論0 收藏0
  • 前端識點整理

    摘要:難怪超過三分之一的開發人員工作需要一些知識。但是隨著行業的飽和,初中級前端就業形勢不容樂觀。整個系列的文章大概有篇左右,從我是如何成為一個前端工程師,到各種前端框架的知識。 為什么 call 比 apply 快? 這是一個非常有意思的問題。 作者會在參數為3個(包含3)以內時,優先使用 call 方法進行事件的處理。而當參數過多(多余3個)時,才考慮使用 apply 方法。 這個的原因...

    snowLu 評論0 收藏0
  • 寫一本關于 React.js 小書

    摘要:因為工作中一直在使用,也一直以來想總結一下自己關于的一些知識經驗。于是把一些想法慢慢整理書寫下來,做成一本開源免費專業簡單的入門級別的小書,提供給社區。本書的后續可能會做成視頻版本,敬請期待。本作品采用署名禁止演繹國際許可協議進行許可 React.js 小書 本文作者:胡子大哈本文原文:React.js 小書 轉載請注明出處,保留原文鏈接以及作者信息 在線閱讀:http://huzi...

    Scorpion 評論0 收藏0
  • 前端基礎

    摘要:談起閉包,它可是兩個核心技術之一異步基于打造前端持續集成開發環境本文將以一個標準的項目為例,完全拋棄傳統的前端項目開發部署方式,基于容器技術打造一個精簡的前端持續集成的開發環境。 這一次,徹底弄懂 JavaScript 執行機制 本文的目的就是要保證你徹底弄懂javascript的執行機制,如果讀完本文還不懂,可以揍我。 不論你是javascript新手還是老鳥,不論是面試求職,還是日...

    graf 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<