1. 程式人生 > >JavaScript學習備忘

JavaScript學習備忘

除法 替換 捕捉 值類型 name 開發 針對 UNC 節點

1.您只能在 HTML 輸出流中使用 document.write 如果在文檔已加載後使用它(比如在函數中),會覆蓋整個文檔

2.數組 : [40, 100, 1, 5, 25, 10] <====>對象名 : {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue", showName:function(name) {alert("我的名字"+ name);}}

3.使用反斜杠‘\‘對代碼進行折行,‘\‘不能在代碼連接處使用(比如方法名和小括號中間, 還有".")

4.沒有聲明值的變量值為undifined, js中重新聲明變量,變量值不會丟(第二次不賦值)

5.基本類型(值類型) : String, Number, Boolean, Null, undifined, symbol

引用數據類型 : Object, Array, Function

 創建數組方式 : var cars=new Array() =>var cars=new Array("Saab","Volvo","BMW")=>var cars=["Saab","Volvo","BMW"];

屬性的兩種尋址方式 : name=person.lastname; <===> name=person["lastname"];

 Undefined 這個值表示變量不含有值。可以通過將變量的值設置為 null 來清空變量

創建對象的方式 : var 方法名 = {name:"張三", demoMethod:function(){alert("This is a Method...");}}

 給對象新增屬性 : 直接增加即可 ===> 方法名.age = 18;

 str = 方法名.demoMethod, 用訪問屬性的方式訪問對象方法(即方法去掉()小括號),會以字符串的形式返回方法名對應的整段代碼

 可以在對象內定義方法,方法作為對象的屬性來儲存,

 也可以在直接定義函數(不在對象內) ==> function showName() { ......;}

 方法可以賦值給變量 ==> var method = function() {.......;}

6.局部變量 : 在函數運行以後被刪除

全局變量 : 在函數外聲明的變量是全局變量, 會在頁面關閉後被刪除

 carname="Volvo" =>把值賦給未聲明的變量(缺了var),該變量會自動變成window的一個屬性,是可配置屬性,可以刪除掉.

 delete var1 ==> var聲明過的變量不可以刪除.

 在 HTML 中, 全局變量是 window 對象: 所有數據變量都屬於 window 對象

7.字符串

  var character = carname[7] ==>可以使用索引位置訪問字符串的某個字符.索引從0開始

  carname.length ==>可以使用內置屬性 length 來計算字符串的長度

  var y = "He is called \"Johnny\""; ==>可以使用反斜杠來在字符串內使用引號.

  字符串可以創建為對象,但是 ==>var x = "John"; >> var y = new String("John"); >> (x === y) // 結果為 false,因為 x 是字符串,y 是對象

  字符串屬性和方法,查閱菜鳥教程

8.比較運算符 : 不絕對等於(值和類型有一個不相等,或兩個都不相等) ===> !==

9.for...in循環 for (x in person) {......;}

  switch語句的case使用的是恒等計算符(===),所以要註意數據類型的匹配!

10.js標簽 <-- lable : 語句 --> 或者 <-- lable : {代碼塊} -->

  可以用break跳出js代碼塊. ==> break lableDemo;

  continue不管加不加標簽,都只能用在循環中.

11. typeof操作符

  typeof 數組 的返回類型是Object , 在JavaScript中,數組是一種特殊的對象類型

  typeof null; 返回Object; ==> null是一個只有一個值的特殊類型。表示一個空對象引用

  typeof method1(); 返回function

  typeof undifined; 返回undifined

12.null和undifined的區別

  undifined : 是所有沒有賦值變量的默認值,自動賦值

  null : 主動釋放一個變量引用的對象,表示一個變量不再指向任何對象地址

  undifined==null; true

  undifined===null; false   ==>undifined和null值相等,類型不相等

  undefined 是一個沒有設置值的變量

  null是一個只有一個值的特殊類型。表示一個空對象引用

13. Array和Date無法通過typeof來判斷數據類型,因為都是 返回 object

  ==>可以使用constructor 屬性來獲取他們的構造函數,從而知道確切的類型

14.全局方法String()可以把其他類型轉換為字符串,還有toString()方法

  全局方法Number()可以把字符串轉換為數字,其他的轉換為NaN

  一元運算符+ (加號) 可以把字符串轉換成數字, x = + "123"; 不是數字的轉換成NaN

15.JavaScript的自動轉換類型情況比較多,查閱 : http://www.runoob.com/js/js-type-conversion.html 最下邊的表格

16.正則表達式

  正則表達式通常應用於兩個String方法,search() <--返回字符串中匹配的字符串開始的index-->和replace() <--替換字符串中的某些字符串-->

  更多內容請搜索 : 正則表達式 自行查看

17.try, catch, finally, throw

  throw允許我們自定義異常. ==> if(x < 5) throw "太小"; throw的字符串信息會被catch語句捕捉到

18. 調試 debugger; 該語句相當於斷點,在F12開發者工具中可以調試代碼

19. 變量提升 : 即使變量先使用後聲明,也不會出錯,因為解釋器會悄悄地把聲明語句提升到前邊

      如果是初始化過的變量,則不會觸發變量提升

20.嚴格模式 : "use strict"

  "use strict"只允許出現在腳本或函數的開頭,在函數中的"use strict"是局部作用域

  嚴格模式限制:不允許使用未聲明的變量,不允許刪除變量或對象等等.具體內容 : http://www.runoob.com/js/js-strict.html

21.JavaScript 中的所有數據都是以 64 位浮點型數據(float) 來存儲

  所以精確度都很難確定,比如0.1+0.2 != 0.3 可以用乘除法(整體放大縮小)來解決 : (0.1*10 + 0.2*10)/10 == 0.3

22.HTML表單自動驗證(無需js),在input標簽內加上required="required"屬性即可,如果為空則阻止提交表單

  數據驗證分為 : 客戶端數據驗證 和 服務器端數據驗證

  約束驗證HTML輸入屬性 : disabled, max, min, pattern, required, type

  比如pattern屬性 ==> <input pattern="[A-z]{3}">

23. 約束驗證相關內容查看 : http://www.runoob.com/js/js-validation-api.html (約束驗證DOM方法,DOM屬性,Validaty屬性,checkValidaty()等等)

24. This : 表示對當前對象的引用

  在方法中,this 表示該方法所屬的對象

  如果單獨使用,this 表示全局對象

  在函數中,this 表示全局對象

  在函數中,在嚴格模式下,this 是未定義的(undefined)

  在事件中,this 表示接收事件的元素

  類似 call() 和 apply() 方法可以將 this 引用到任何對象

  方法==>對象調用的是方法 函數==>直接調用的是函數

  關於apply(), call(), bind() ===>http://www.cnblogs.com/moqiutao/p/7371988.html

25. let 和const

  ES6之前,js只有兩種作用域:(局部變量||全局變量),而ES6新增的let和const的作用域則是(塊級變量||全局變量)

  在 JavaScript 中, 全局作用域是針對 JavaScript 環境

  在 HTML 中, 全局作用域是針對 window 對象

  var==> 1).代碼塊中聲明的變量也是全局變量

      2).聲明的變量屬於window,可以使用 window.carName 訪問變量

      3).var變量可以重復聲明,也可以先使用後聲明.

  let==>  1).代碼塊中聲明的變量為塊級作用域

      2).聲明的變量屬於js環境,不能先使用後聲明

      3).不可重復聲明,不可先使用後聲明,不能和var在相同作用域聲明相同變量名

  const==>  1).123同let 

         2).聲明的是"常量",但並非是真正的常量,用const聲明的對象,可以修改屬性,聲明的數組,可以修改元素.但都不能重新給對象賦值.

26. JSON

  JSON 通常用於服務端向網頁傳遞數據,是一種輕量級的數據交換格式,JSON是獨立的語言

  JSON對象 : {"name":"Runoob", "url":"www.runoob.com"}  簡單的json對象

        { "sites" : [{"name":"Runoob", "url":"www.runoob.com"}, {"name":"Runoob", "url":"www.runoob.com"}] } 復合型的json對象.

        [ ] 用來保存數組,[ ]外邊不用加引號. { }用來保存對象

  JSON字符串轉換為JS對象 ==> 使用 JavaScript 內置函數 JSON.parse() 將字符串轉換為 JavaScript 對象

  把JSON字符串作為參數傳入JSON.parse(str),即可返回JS對象.

  相對的,JSON.stringify(JS對象), 可以把js對象轉換為JSON字符串.

  ==>註意區分JSON對象和JSON字符串!

27.javascript:void(0) : void()的小括號裏可以跑代碼,但是javascript:void()不返回任何值

  <a href="javascript:void(0)">單擊此處什麽也不會發生</a>

  <a href="javascript:void(alert(‘Warning!!!‘))">點我!</a> ==>點擊後會彈出alert框

  href="#"與href="javascript:void(0)"的區別 :

    href="#"是指鏈接到當前頁面, href="#pictures",是指定位到id=pictures的節點位置

    javascript:void(0), 僅僅表示一個死鏈,如果你要定義一個死鏈接請使用 javascript:void(0)

JavaScript學習備忘