2345技术员联盟

javascript學習指南——先導片

  • 来源:未知 原创
  • 时间:2018-08-01
  • 阅读:
  • 本文标签:

javascript學習:



- 帶有src屬性的<script>元素不應該在其<script>和</script>標簽之間再包含額外的JavaScript代碼,如果包含了嵌入的代碼,只會下載並執行

外部腳本文件,嵌入的代碼會被忽略 

- 標準模式和混雜模式的區分點:主要為css方面,也會影響JavaScript 

標準模式和混雜模式區別 

- <noscript>元素可以指定在不支持腳本的瀏覽器中顯示的替代內容,但啟用的情況下不會顯示


JavaScript區分大小寫,基本數據類型有undefined,Null,Boolean,Number,String JavaScript的精度運算會出現誤差,主要是因為采用了IEEE

 754標準,轉化為二進制後運算有位數限制,利用先轉化為整數解決

省略var後變量變為全局變量(不贊成這樣做),用var在函數內部定義一個變量,則只在函數內部環境有效,undefined派生自null

isNaN()函數判斷是否是數值

typeof 判斷數據類型,“person instanceof object”判斷變量是否是object的實例

利用parseInt()函數制定基數,如: var num=parseInt(“10”,16),parseInt()將字符串轉化成整數;

Number()將null轉化為0,將undefined轉化為NaN

parseFloat()只解析十進制數,如果第一個數為非數字,會被直接解析為NaN

字符串中含有雙字節字符,length屬性不會精確地返回字符串的字符數目;

轉換成字符串方法:num.toString(8)可將num轉換成8進制的數

創建Object對象保存在變量o中,實現實例化: 

var o=new Object(); Object的每個實例有以下屬性和方法: constructor:保存用於創建當前對象的函數,此例中的構造函數為Object(); 

hasOwnProperty():檢查對象實例是否有某屬性,屬性名以字符串形式指定; 

valueOf():返回對象的字符串、數值或布爾值,即具體值,如var t=new 

Date(),o.valueOf()會返回具體的時間(d的值)

一元操作符+和-對對數字不會產生影響,但對其他非數值進行操作時,會像Number()函數一樣對值進行轉換 

var num1 = 25; // 二進制 00000000000000000000000000011001 

var num2 = ~num1; // 二進制 11111111111111111111111111100110 

alert(num2); // -26 

變成負數的讀法是按位取反,末位加一(得到補碼)


左移不區分有符號和無符號,右移過程: 有符號右移(>>): 符號位不變,最高位以1填充; 無符號右移(>>>): 

會把負數的二進制碼當成正數的二進制碼,導致得到的結果很大

字母和字母比較時,全部轉換成字符編碼比較;字符和數字比較時,字符轉化成數值

函數的參數在調用時不用一一對應,參數其實由一個argument的對象組成的數組,調用的時候,第一個參數可以寫為argument[0],依此類推


按位非的實質是操作數的負值-1

valueOf() 方法可返回 Boolean 對象的原始值,NaN不等於任何值

ECMAScript函數沒有重載,但可以實現類似重載效果,可以向函數傳遞任意數量的參數,函數都會執行,可通過argument對象來訪問參數,相當於其

中有一個argument數組

判斷類型時使用typeof操作符,如果是對象使用instance判斷是什麽類型的對象


創建object實例有兩種方法 

1.對象字面量表示法: 

var person={ 

name:”nike”, //使用逗號分隔不同的屬性 

age:12 //最後一個變量,不用加逗號 

2.最直接的new 操作符+Object構造函數 

var person=new Object(); 

person.name=”Nicholas”; 

person.age=29;

使用 new 調用基本包裝類型的構造函數,與直接調用同名的轉型函數是不一樣的。 

例如: 

var value = “25”; 

var number = Number(value); //轉型函數 

alert(typeof number); //”number” 

var obj = new Number(value); //構造函數 

alert(typeof obj); //”object”


join方法可使用不同的分隔符重建字符串

js中的toString()和toLocaleString()不同地方在於後者會按本地規則進行解析,如new Date()會解析成類似2018/3/26 下午8:35:06,解

析數字時會每三個隔一個逗號,像是人民幣的斷字

查找數組中的某個數,從前開始往後:indexOf(),從後開始往前:lastIndexOf()

取模運算只與左邊的符號有關

函數聲明會覆蓋變量聲明(在僅聲明不賦值的情況下)

自調用函數過程: 

(function () { 

var x = “Hello!!”; // 我將調用自己 

})();

element.addEventListener(event, function, useCapture);

第一個參數是事件的類型 (如 “click” 或 “mousedown”).


第二個參數是事件觸發後調用的函數。


第三個參數是個布爾值用於描述事件是冒泡還是捕獲。該參數是可選的。 

利用js添加一個塊級元素:


1 <div id="div1">

2 <p id="p1">這是一個段落。</p>

3 <p id="p2">這是另一個段落。</p>

4 </div>

5 <script>

6 var para=document.createElement("p");

7 var node=document.createTextNode("這是一個新段落。");

8 para.appendChild(node);

9 var element=document.getElementById("div1");

10 element.appendChild(para);


js彈窗之確認框:


1 function myFunction(){

2    var x;

3    var r=confirm("是否選擇!");

4    if (r==true){

5    x="你按下了\"確定\"按鈕!";

6    }

7    else{

8    x="你按下了\"取消\"按鈕!";

9    }

10  document.getElementById("demo").innerHTML=x;

11  }


js彈窗之提示框:


1    function myFunction(){

2    var x;

3    var person=prompt("請輸入你的名字","Harry Potter");

4    if (person!=null && person!=""){

5    x="你好 " + person + "! 今天感覺如何?";

6    document.getElementById("demo").innerHTML=x;

7   }

8   }


bind()方法普遍使用:


1 function f(y,z){

2 return this.x+y+z;

3   }

4 var m=f.bind({x:1},2); 

5 console.log(m(3));  // 6


bind()方法會把傳入它的第一個實參綁定給f函數體內的 this,從第二個實參起,將依此傳遞給原始函數,因此 {x:1}傳遞給this ,2傳遞給形參

y,m(3) 調用時的3 傳遞給形參z。


其實這個例子 f() 函數能夠處理部分參數,分步計算 ( bind() 時處理了參數x,和參數y,調用 m(3)時處理了參數z )的過程其實是一個典型的

Curry過程(Currying)。


相关文章

本文来自电脑技术网www.it892.com),转载本文请注明来源.
本文链接:http://www.it892.com/content/web/js/0P110N422018.html

推荐阅读
无觅相关文章插件,快速提升流量