NO.1 script引用
根據(jù)HTML加載順序原則
1.script一般引用在body結(jié)束標簽之前
2.如果script在header中引用裤翩,可以使用defer="defer"這個屬性,使得腳本遇到/html后執(zhí)行(注意,只是延遲執(zhí)行,但是開始會立即下載)
3.異步腳本,async屬性,告訴瀏覽器立即下載,但是執(zhí)行順序是根據(jù)下載完的先后來決定
NO.2 嚴格模式
JavaScript中如果要實現(xiàn)嚴格模式蛆封,在js文件中d頂部加入use strict
,這樣的話勾栗,對某些不安全的操作也會拋出錯誤
NO.3 數(shù)據(jù)類型
1.Undefined類型惨篱,只有一個值,就是undefind围俘,在var聲明變量后沒有對其初始化砸讳,這個變量的值就是undefind
不過對于聲明過的變量x和沒聲明過的變量y,typeof(x&y),都會返回undefind
2.Null類型界牡,只有一個值簿寂,就是null,如果變量將來用于保存對象宿亡,建議將變量初始化為null常遂,值得注意的是undefind == null結(jié)果是true
3.Boolean類型,有兩個值挽荠,false和true
轉(zhuǎn)型函數(shù)克胳,Boolean()平绩,可以使得其他值轉(zhuǎn)化為布爾值
4.Number類型
整數(shù):
var a = 55 //整數(shù)
var a = 070 //八進制的56(在嚴格模式下無效)
var a = 0xA //十六進制的10
浮點數(shù):
var a = 1.1
var a = 1.0(將自動轉(zhuǎn)化為整數(shù))
NaN 非數(shù)值,和任何值都不相等漠另,包括本身
NaN == NaN //false
isNaN()捏雌,判斷參數(shù)是否"不是數(shù)值"
isNaN(10) //false
數(shù)值轉(zhuǎn)化:
有三個函數(shù)Number(),parseInt(),parseFloat()
5.String類型
轉(zhuǎn)化為字符串toString()
6.object類型
var o =new Object()
Object的每個實例(所有對象)都具有下列屬性和方法:
1.constructor 保存著用于創(chuàng)建當前對象的函數(shù),叫做構(gòu)造函數(shù)酗钞,對于var o =new Object()來說腹忽,Object()就是構(gòu)造函數(shù)
2.hasOwnproperty 用于檢查給定的屬性在當前對象中是否存在
如:o.hasOwnproperty("name")
3.isPrototypeOf(object) 用于檢查傳入的對象是否是傳入對象的原型
- propertyIsEnumerable("propertyname"),用于檢查給定的屬性是否能夠使用for-in語句
- toLocaleString() 返回對象的字符串表示来累,該字符串與執(zhí)行環(huán)境地區(qū)對應(yīng)
- toString() 返回對象的字符串表示
- valueOf() 返回對象的字符串砚作,數(shù)值或者布爾值表示,通常和toString()返回的值相同
NO.4 操作符
a++ 和 ++a
a++表示遞增1嘹锁,但是當前未賦值到當前變量
++a表示遞增1葫录,但是已經(jīng)賦值到當前變量
一元操作符+
var a = 25
a = +a //結(jié)果還是25
一元操作符+放在數(shù)值前面,沒人任何影響领猾,放在非數(shù)值對象前時米同,會執(zhí)行Number()方法,將之轉(zhuǎn)化為數(shù)值
乘,除和余數(shù)操作符摔竿,在參與計算的值不是數(shù)值時面粮,后臺都會先用Number()轉(zhuǎn)化為數(shù)值。
加性操作符:
如果只有一個操作數(shù)是字符串继低,那么會把另外一個操作數(shù)也轉(zhuǎn)換為字符串熬苍,然后拼接起來
NO.5 函數(shù)
1.函數(shù)參數(shù)
JavaScript的函數(shù)參數(shù)和大多數(shù)的其他語言不同,js的函數(shù)不介意傳遞進來多少個參數(shù)袁翁,也不在乎進來的參數(shù)是什么數(shù)據(jù)類型柴底。
原因是參數(shù)在js內(nèi)部是一個數(shù)組來表示的,函數(shù)始終接受的都是這數(shù)組粱胜,不關(guān)心數(shù)組里有什么東西
那么在函數(shù)體內(nèi)柄驻,也可以用arguments對面來訪問函數(shù)的參數(shù),例如:
function sayHI(name,message){
alert("hello" + arguments[0] +arguments[1])
}
所以參數(shù)名稱只是提供便利焙压,不是必須的鸿脓。
利用函數(shù)可以傳入不同個數(shù)參數(shù)的特性,可以分別實現(xiàn)適當?shù)墓δ苎那纾?/p>
function doAdd(num1,num2){
if(arguments.length == 1){
alert(arguments[0]+10)
} else if (arguments.length == 2){
alert(arguments[0]+arguments[1]
}
}
以上函數(shù)的功能是答憔,當傳入一個參數(shù)時,輸出參數(shù)+10掀抹,當傳入兩個參數(shù)時虐拓,輸出參數(shù)1+參數(shù)2
JavaScript函數(shù)無需定義返回值,因為在它可以任何時候可以返回任何值
JavaScript函數(shù)沒有函數(shù)簽名的特性傲武,所有不能重載