js部分
一、關鍵詞和語法結構
1.區(qū)分大小寫
2.注意 、// 單行注釋 ? ?/* ? 多行注釋 ?*/
3.字面量(直接量 ? literal)比如:12 //數(shù)字 ?劲装,5.8 // 小數(shù) 唁情, “hello” ? ? ‘hello’ ?//字符串姻僧,true ? ?
/js/gi? //正則 ,null? // 空? 份企,(X:1,y:2)字典 var dict = {"Jeremy":20,"Jimmy":30}; ? ? [ 1,2,3,4]; //數(shù)組也榄。
4.標識符(變量)和保留字
1.分號可以省略但是可能會產(chǎn)生問題,js會自動補上司志;
例如:var y = x+f
(a+b).toString()
等價于
var y = x+f(a+b).toString();
二甜紫、類型,值和變量
1.原始類型 ? 數(shù)字 ?字符串 和 布爾 (bool) ? ?null 空 ? undefine未定義的骂远。
2.對象類型
3.類 Array ? ? ? ? ? ? Function ? ? ? ? ? Date ? ? ? ? ?RegExp ? ? ? ? ? Error
4.js解析器 中集成了垃圾回收
5.任意js的值都可以轉為布爾值
例如:undefined
null
0
-0
NaN
""都被轉換為false
6.包裝對象?
例如:var s ? = ? "hello"; ? ? ?//原始類型(沒有方法)
s.len = ? 4 ; ? ?// ? ?當調(diào)用原始類型的屬性或方法的時候(原始類型是沒有屬性和方法的)
//只要引用了字符串的屬性或方法囚霸,就會調(diào)用new
String(s) ?把原始類型,包裝成對象
// ? 以后調(diào)用s.len是調(diào)用String對象的屬性和方法激才,一旦引用結束拓型,新創(chuàng)建的臨時對象會銷毀
var ?n ?= ?s.len; ? // ? 此時為undefined
alert(n);
// ? 調(diào)用字符串布爾數(shù)字的屬性或方法時,創(chuàng)建的臨時對象瘸恼。是包裝對象
顯示定義包裝對象var S = new ?String("hello")
var s ="hello"; ? ? ?是不同的
7.==和===的區(qū)別
如下:1劣挫、對于string,number等基礎類型,==和===是有區(qū)別的
1)不同類型間比較东帅,==之比較“轉化成同一類型后的值”看“值”是否相等压固,===如果類型不同,其結果就是不等
2)同類型比較靠闭,直接進行“值”比較帐我,兩者結果一樣
2坎炼、對于Array,Object等高級類型,==和===是沒有區(qū)別的
進行“指針地址”比較
3焚刚、基礎類型與高級類型点弯,==和===是有區(qū)別的
1)對于==,將高級轉化為基礎類型矿咕,進行“值”比較
2)因為類型不同抢肛,===結果為false
8.類型轉換
如下:var n = 17;
alert(n.toString(2)); ? ? //二進制10001
alert(n.toString(8)); ? ? ?//021
alert(n.toString(16)); ? ? ?//0x21
alert(n.toString(10)); ? ? ? ? ?alert(n.toString());
9.toString( ) 和 ? ?valueOf( )
var date = newDate(2011,1,3);
date.valueOf( ) ? ?返回毫秒數(shù)代表的時間
10.js是動態(tài)類型 ? ?var n =10; ? ? ?程序運行期間才會確定變量的類型
11.變量作用域
函數(shù)作用域和聲明提前
函數(shù)內(nèi)定義的變量聲明自動提前到函數(shù)頂部
12.作用域鏈 ? ? scope ? chain
在不包含函數(shù)的函數(shù)體內(nèi),作用域鏈有兩個對象碳柱,第一個是定義函數(shù),?參數(shù)和局部變量的對象捡絮,第二
個是全局對象。
在一個嵌套函數(shù)體內(nèi)莲镣,作用域鏈上至少有三個對象福稳。定義一個函數(shù)時,它保存了一個作用域鏈瑞侮。調(diào)
用函數(shù)時的圆,它創(chuàng)建一個新的對象存儲它的局部變量,并將這個對象添加到保存的那個作用域鏈
上半火,同時創(chuàng)建一個新的更長的表示函數(shù)調(diào)用作用域的“鏈”越妈。對于嵌套函數(shù)每次調(diào)用外部函數(shù)時,內(nèi)
部函數(shù)會重新定義一遍钮糖。每次調(diào)用外部函數(shù)的時候
作用域鏈是不同的梅掠。
創(chuàng)建對象的三種方法
1.對象 ? 直接量
如下:
```
var empty = {};
```