JavaScript 起源(了解即可)
最初由網(wǎng)景(netscape)公司推出,一開始叫Livescript,由于當(dāng)時(shí)Java十分火爆,為了蹭一波熱度,因此他們?cè)谛聻g覽器版本發(fā)布前夕把LiveScript改名為JavaScript,從此JavaScript就誕生了。Javascript 是什么:是一種跨平臺(tái),事件驅(qū)動(dòng)、基于原型的面向?qū)ο蟆⑷踅忉屝?、單線程客戶端腳本語言
最初目的: 解決繁瑣的表單驗(yàn)證
演變與關(guān)系: Livescript、Javascript、JScript、ECMAScript
版本: es5 2012 es6 2015 es7\es8Javascript 由三部分組成,分別是:
ECMAScript
Javascript的語言核心,是一個(gè)標(biāo)準(zhǔn),可以理解為一系列的規(guī)定;比如有什么數(shù)據(jù)類型,代碼風(fēng)格是怎么樣之類的...
BOM
瀏覽器對(duì)象模型
DOM
文檔對(duì)象模型使用JS的兩種形式
// JS注釋
// 單行注釋
/* 多行注釋 */
// 內(nèi)聯(lián)寫法
<script>
// 萬事hello word起步,
// document.write()方法:把括號(hào)中的內(nèi)容輸出到文檔中
document.write('<h1>Hello World</h1>')
</script>
// 外鏈 引入
// 編寫a.js文件
document.write(‘<h1>Hello World</h1>');
// 在HTML中引入JS
<script src="a.js">
- 注意點(diǎn)
1.不管是內(nèi)聯(lián)使用JS還是外鏈引入JS的方式,都推薦在HTML</body>前面使用
2.src 屬于覆蓋屬性
<script src="a.js">
// 不會(huì)執(zhí)行,會(huì)被a.js中的內(nèi)容覆蓋
document.write('告辭!!!');
</script>
-
聲明變量規(guī)則
- 使用 var 、 let / const (es6新增) 關(guān)鍵字聲明
- JS是弱類型語言,聲明變量時(shí),不需要聲明類型
- 聲明變量,不賦值,得到的結(jié)果是undefined
-
變量命名規(guī)范
- 必須以 美元符號(hào) 或 英文字母開頭,由 美元符號(hào)、下劃線 和 英文字母數(shù)字組成
- 不能使用JS關(guān)鍵字、保留字
- 英語字母區(qū)分大小寫
- 駝峰式命名法
-
JS數(shù)據(jù)類型
- 基本數(shù)據(jù)類型:Number、String、Boolean、Undefined、null、Symbol(es6新增)
- 引用類型:object({}、[]), function
判斷一個(gè)變量的類型
// typeof()
var a = 5
typeof(a) // number
// 幾種特殊情況
typeof(null) // object
typeof(function) // function
typeof(NaN) // number
- instanceof 判斷一個(gè)實(shí)例是否屬于某種類型
// instanceof 關(guān)鍵字
var arr = []
arr instanceof Array // true
-
強(qiáng)制類型轉(zhuǎn)換
xxx.toString():強(qiáng)制轉(zhuǎn)換為字符串
null 和 undefined不可以強(qiáng)制轉(zhuǎn)換為字符串Number():強(qiáng)制轉(zhuǎn)換為數(shù)字
只有數(shù)字字符串,才可以轉(zhuǎn)換為數(shù)字
空字符串轉(zhuǎn)為數(shù)字0,其它字符串都為NaN
true 為 1,fasle 為 0
null 為 0,undefined 為 NaN --not a number
任意兩個(gè)NaN互不相等
- Number的幾個(gè)常用方法
parseInt()
console.log(parseInt('12abc456')); // 12
console.log(parseInt('1阿爸34')); // 1
console.log(parseInt('abc12345')); // NaN
parseFloat()
console.log(parseFloat('123.456abcd')) //123.456
// 字符串要求: 必須以數(shù)字開頭, 碰到非數(shù)字的字符結(jié)束, 返回來一個(gè)整數(shù)
isNaN():判斷是否為數(shù)字,本身屬于Number
xxx.toFixed(num)
// 四舍五入保留num位小數(shù),轉(zhuǎn)換一個(gè)數(shù)字,返回字符串?。?!
- Boolean():強(qiáng)制轉(zhuǎn)換為布爾
字符串轉(zhuǎn)布爾:非空即為真
數(shù)字轉(zhuǎn)布爾:非0即為真
null 、undefined 都為false
所有的對(duì)象,轉(zhuǎn)為布爾類型, 一定為true
- 運(yùn)算符
算數(shù)運(yùn)算符 + - * / %(取模)
賦值運(yùn)算符 = += -= *= /= %=
一元運(yùn)算符(自增、自減)
++i,增加變量,返回一個(gè)新的值
i++,增加變量,返回舊的值
--i, 減少變量,返回一個(gè)新的值
i--, 減少變量,返回舊的值
var k = 4;
var sum = k + ++k + k++ + ++k + --k + k--;
// 4 + 5 + 5 + 7 + 6 + 6
console.log(k); // 5
console.log(sum); // 33
關(guān)系運(yùn)算符
== === >= <= > <
返回布爾類型的值邏輯運(yùn)算符
|| 有一真即返回
&& 有一假即返回
! 把值隱式轉(zhuǎn)換為布爾類型,取反三元運(yùn)算符 ( ?:)
var a = 1;
a == true ? 'aaa' : 'bbb' // aaa