《Javascript语言精粹》 读书笔记
1 6種值被當(dāng)做假:false、null、undefined、空字符串''、數(shù)字0、數(shù)字NaN,其他所有值都為真,包括"false"
2 typeof有6種值,分別是'number','string','boolean','undefined','function','object';其中typeof(null),結(jié)果是'object'
3 如果第一個運算數(shù)的值為真,那么運算符||產(chǎn)生它的第一個運算數(shù)的值.否則,它產(chǎn)生第二個運算數(shù)的值.如,可利用||運算符來填充默認(rèn)值var status = flight.status || "unkonwn"
4 apply方法讓我們構(gòu)建一個參數(shù)數(shù)組傳遞給調(diào)用函數(shù),它允許我們選擇this的值。apply接受兩個參數(shù),第一個是要綁定給this的值,第二個是參數(shù)數(shù)組
//構(gòu)造一個包含兩個數(shù)字的數(shù)組,并將它們相加
var array = [3, 4];
var sum = add.apply(null, array); //sum的值為7
5 異常處理
var add = function(a, b) {if(typeof a !== 'number' || typeof b !== 'number') {throw {name: 'TypeError',message: 'add needs numbers'};}return a + b; }//構(gòu)造一個try_it函數(shù),以不正確的方式調(diào)用之前的add函數(shù) var try_it = function() {try {add("seven");} catch (e) {document.writeln(e.name + ':' + e.message);} }?
6 給Number.prototype增加一個integer方法,根據(jù)數(shù)字的正負(fù)來判斷是使用Math.ceiling(向上取整)還是Math.floor(向下取整)
Number.method('integer', function() {return Math[this<0 ? 'ceil' : 'floor'](this); }); document.writeln((-10/3).integer()); //-3?
7??移除字符串首尾空白的方法
String.method('trim', function() {return this.replace(/^\s+|\s+$/g, '');//正則的意思是從頭開始匹配空白字符一次或多次,從最好開始匹配空白字符一次或多次 });document.writeln('"' + " neat ".trim() + '"');
8 模塊是一個提供接口卻隱藏狀態(tài)與實現(xiàn)的函數(shù)或?qū)ο?#xff0c;模塊模式一般形式是:一個定義了私有變量和函數(shù)的函數(shù);利用閉包創(chuàng)建可以訪問私有變量和函數(shù)的特權(quán)函數(shù);最后返回這個特權(quán)函數(shù),或者把他們保存到一個可以訪問到的地方,使用模塊模式可以摒棄全局變量的使用
String.method('deentityfity', function() {//字符實體表,它映射字符實體的名字到對應(yīng)的字符var entity = {quot: '"',lt: '<',gt: '>'};//返回deentityfity方法return function() {return this.replace(//&([^&;]+);/g, function(a, b) {//如果字符串可以再映射表中找到就將其替換為映射表中的值var r = entity[b];return typeof r === 'string' ? r : a;});}; }()); document.writeln('<">'.deentityfity()); // <">
9?javascript缺少塊級作用域,所以,最好的做法是在函數(shù)體的頂部聲明函數(shù)中可能用到的變量
?
10?/^ $/i,我們用^和$來框定這個表達式,它指引這個正則表達式對文本中的所有字符進行匹配,如果省略了這個標(biāo)識,那么只要一個字符串包含一個數(shù)字,這個正則表達式就進行匹配,但有了這些標(biāo)識,只有當(dāng)一個字符串的內(nèi)容僅為一個數(shù)字的時候,它才會告訴我們,如果僅包含^, 它將匹配以一個數(shù)字開頭的字符串,如果我們僅包含$, 則匹配以一個數(shù)字結(jié)尾的字符串。
?
11?(?:...)?表示一個可選的非捕獲型分組
?
12?javascript中的糟粕
全局變量 :越少越好
作用域 :無塊級作用域,在每個函數(shù)開頭部分聲明所有變量
自動插入分號 :因此大括號風(fēng)格需使用埃及括號
Unicode :javascript字符是16位的,只能覆蓋65535個字符
parseInt :增加第二個參數(shù),明確進制,parseInt("08",10)
浮點數(shù) :二進制浮點數(shù)不能正確的處理十進制小數(shù),0.1+0.2不等于0.3,不過整數(shù)部分是精確的
NaN : typeof NaN === 'number' //true; NaN === NaN //false;
對象 :因為原型鏈的存在,javascript對象永遠不會有真的空對象
轉(zhuǎn)載于:https://www.cnblogs.com/elexiang/p/4743581.html
總結(jié)
以上是生活随笔為你收集整理的《Javascript语言精粹》 读书笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GATT之Device informat
- 下一篇: Xamarin Android 所见即所