javascript
javascript权威指南--学习笔记
-一、JavaScript基本數(shù)據(jù)類型
1、數(shù)字--Number類
2、字符串--String類
3、布爾--Boolean類
4、函數(shù)Function
5、對(duì)象Object
6、數(shù)組Array
7、null
8、undefined
備注:? ? 當(dāng)一個(gè)未定義的值用于布爾環(huán)境,他就會(huì)轉(zhuǎn)為false,用于數(shù)字環(huán)境就會(huì)轉(zhuǎn)為0 ,用于字符串環(huán)境就會(huì)轉(zhuǎn)為undefined
?
二、JavaScript對(duì)象類
1、日期和時(shí)間 Date
?
三、數(shù)據(jù)類型轉(zhuǎn)化
將數(shù)字轉(zhuǎn)化我字符串
(1)數(shù)字用在一個(gè)字符串表達(dá)式中,就會(huì)先轉(zhuǎn)為字符串,所以要將一個(gè)數(shù)字轉(zhuǎn)為字符串直接加加一個(gè)空字符串就可以。
? ? ? var n = 100 ; n = n + " " ; //typeof n ===string
?(2)使用String函數(shù), n = String(n);
?(3)使用toString方法 , n = n.toString();
將字符串轉(zhuǎn)化為數(shù)字
?(1)當(dāng)字符串在運(yùn)算環(huán)境中,則會(huì)自動(dòng)轉(zhuǎn)化為數(shù)字。如 var t = "23" * "2" .// 46 ,
? ? ? ? ?所以我們可以利用這一點(diǎn),將一個(gè)字符串直接減去 0 var t = "23" - 0; 注意,字符串加0會(huì)導(dǎo)致字符串連接,
? ? ? ? ?而不是轉(zhuǎn)化數(shù)據(jù)類型。
? (2)使用Number函數(shù) var number = Number(“23”),
? (3)使用parseInt或者parseFloat會(huì)去掉非數(shù)字部分,轉(zhuǎn)為整型和浮點(diǎn)型。不能把制定的字符串轉(zhuǎn)為數(shù)組,如parseFloat("$33.99")//輸出NaN
? ? ? ? ? parseInt甚至可以用另一個(gè)參數(shù)來(lái)解析數(shù)字的參數(shù),合法值再2-36之間。parseInt('11',2) //輸出3,1*2 +1
? 布爾類型的轉(zhuǎn)換
? ECMAScript指出,如果一個(gè)字符串以“0”開(kāi)頭的話,parseInt會(huì)將它解析為八進(jìn)制或者10進(jìn)制,存在不確定性,所以,不要用parseInt去解析“0”
? 開(kāi)頭的字符串。除非parseInt(“09898”,10)顯示指出。
? ?(1)如果一個(gè)布爾值用在數(shù)字環(huán)境中,true轉(zhuǎn)為1,false轉(zhuǎn)為 0;如果一個(gè)布爾值用在字符串環(huán)境中,true轉(zhuǎn)為true,false轉(zhuǎn)為false,空值和未定義轉(zhuǎn)為false,否則轉(zhuǎn)為true
? ?(2)使用Boolean(x) //true或者false
?
四、基本數(shù)據(jù)類型的包裝對(duì)象
?eval()方法對(duì)待string字符串和string對(duì)象是不一樣的,如果無(wú)意間傳遞給他一個(gè)string對(duì)象,那么可能無(wú)法像預(yù)期那樣子工作。
?object()函數(shù),任何的數(shù)字,字符串,布爾值都可以轉(zhuǎn)化為對(duì)應(yīng)的包裝對(duì)象
?對(duì)象轉(zhuǎn)化為其他對(duì)象。valueOf
傳值:當(dāng)一個(gè)數(shù)據(jù)被操作,就是復(fù)制一份這個(gè)數(shù)據(jù)放在變量中,提供函數(shù)或者方法取使用,如果一旦這個(gè)函數(shù)或者方法
改變了這個(gè)數(shù)據(jù),那也只是改變了函數(shù)的這個(gè)拷貝值的值,對(duì)原先的值不會(huì)有影響。?
這個(gè)就是基礎(chǔ)數(shù)據(jù)類型:數(shù)字(number),布爾(boolean)、字符串(string)
傳址:當(dāng)這個(gè)數(shù)據(jù)被操作,被操作的只有這個(gè)數(shù)據(jù)的引用(地址),如果以傳址方式進(jìn)行,那么變量存儲(chǔ)的是該值的地址,
復(fù)制傳遞的都是這個(gè)地址。在傳址時(shí)只是這個(gè)地址被復(fù)制一份,而不是該值,如果通過(guò)一個(gè)地址(如函數(shù)參數(shù)變量)改變了該值,
那么這個(gè)值就被改變了。
這個(gè)是引用類型數(shù)據(jù):對(duì)象Object ,數(shù)組(Array)、函數(shù)(Function)
?
五、運(yùn)算符
算術(shù)運(yùn)算符
(1)加號(hào)運(yùn)算符 + :可以進(jìn)行算術(shù)運(yùn)算,也可以進(jìn)行字符串拼接。字符串和數(shù)字相加那么直接變成字符串,數(shù)字和數(shù)組、對(duì)象相加變成字符串。
? ? ? ? ? ? ? var s = 100 ;var obj = {name : 'beryl'};var array = [1,3]var t = s + obj;console.log(typeof t)//string類型
? ? ? ? ?+ 運(yùn)算符做運(yùn)算任何都會(huì)轉(zhuǎn)為數(shù)字或者字符串。
(2)減號(hào)運(yùn)算符 -:二元操作,兩個(gè)都是數(shù)字的值可以使用- 運(yùn)算符進(jìn)行減法,但是如果其中一個(gè)不是數(shù)字, - 就會(huì)將其轉(zhuǎn)化為 數(shù)字
(3)乘法運(yùn)算符 * :同減號(hào)
(4)除法運(yùn)算符 / :二元操作,任何的數(shù)字/0 結(jié)果都是NaN
(5)模運(yùn)算符 %:取余數(shù),5%2 ?為1
(6)一元減法運(yùn)算符 - :-1,取反
(7)一元加法運(yùn)算符+:+1000,+"string"//NaN
(8)遞增運(yùn)算符++:該運(yùn)算符只能是變量或者數(shù)組一個(gè)元素或者對(duì)象的一個(gè)屬性。++i,i++通常用在循環(huán)中
(9)遞減運(yùn)算符--
(10)相等運(yùn)算符 == :寬松檢測(cè),
(11)等同運(yùn)算符 === :嚴(yán)格檢測(cè)
var s1 ;console.log(s1 === undefined )//true
等同的判定方法:
1、如果兩個(gè)值類型不同,那他們就不等同。
2、如果兩個(gè)值有其中一個(gè)是NaN(包括它本身),那么這兩個(gè)值一定不等同。
(12) in 運(yùn)算符 。in左邊要是字符串或者可以被轉(zhuǎn)為字符串,右邊是對(duì)象或者數(shù)組。左邊如果有在對(duì)象里面,返回true,否則返回false。
? ? ? ? ? ?“x” in {x:1,y:2} // true
(13)instanceof運(yùn)算符。iinstanceof左邊是對(duì)象,右邊是對(duì)象的類,如果對(duì)象屬于這個(gè)對(duì)象的類,返回true,否則,返回false。
? ? ? ? ? var d = new Date(); d instanceof Date ?//true
? ? ? ? ?如果instanceof右邊不是一個(gè)構(gòu)造函數(shù),而是一個(gè)對(duì)象(String,Number),返回false。
? ? ? ? ?d instanceof Stirng//返回false
(14)邏輯非運(yùn)算符
(15)位運(yùn)算符 >> ?,>>>
(16)賦值運(yùn)算符 =
(17)條件運(yùn)算符。x>y?x+y :-x+y;
(18)typeof運(yùn)算符。數(shù)字、字符串、布爾值——返回 number、string、boolean
? ? ? ? ? 數(shù)組,對(duì)象(String,Number,Boolean包裝對(duì)象),null返回object
(19)對(duì)象創(chuàng)建運(yùn)算符。
(20)函數(shù)運(yùn)算符()
六、語(yǔ)句
(1)表達(dá)式語(yǔ)句
(2)if語(yǔ)句。else if 語(yǔ)句。
(3)switch語(yǔ)句。
? ? ? ?switch(表達(dá)式){
case 1:
break;
case ‘number’:
break;
case 60*60*24:
break;
case Math.PI:
break;
case n+1://case后面跟表達(dá)式
break;
case a[0]:
break;
default:
break;
}
(4)while語(yǔ)句
(5)for語(yǔ)句
(6)default語(yǔ)句:可以退出最內(nèi)層的循環(huán)和switch語(yǔ)句 default;
(7)continue語(yǔ)句:用于開(kāi)始循環(huán)的新迭代。continue;只能用于while ,do while ,for , for in中
(8)var語(yǔ)句,生命變量的語(yǔ)句,變量提升,可以作為for循環(huán)的一部分。
(9)function語(yǔ)句。
(10)return 語(yǔ)句。return只能出現(xiàn)在函數(shù)中,作為函數(shù)的返回值,也可以return ;終止函數(shù)。
(11)throw語(yǔ)句。throw語(yǔ)句就是拋出一個(gè)異常,就是用信號(hào)通知發(fā)生了錯(cuò)誤或者異常。
try塊中,錯(cuò)誤以下的部分都不會(huì)被知行。
catch異常,捕捉異常,就是知道異常了,然后就要處理他。catch塊只有在有錯(cuò)誤的時(shí)候,才會(huì)被知行。
(12)finally 語(yǔ)句。只要執(zhí)行try塊語(yǔ)句,finally塊語(yǔ)句都會(huì)被執(zhí)行。通常用戶try從句代碼后,用于清除的操作,
如果try快中遇到return break continue時(shí),那么再轉(zhuǎn)移到新的目的地錢,finally快都會(huì)被執(zhí)行。
(13)with語(yǔ)句。with語(yǔ)句用于修改暫時(shí)修改作用域鏈。
總結(jié):
?
?
?
?
? ??
? ??
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangyuanjiao/p/9799342.html
總結(jié)
以上是生活随笔為你收集整理的javascript权威指南--学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 导出导入数据库
- 下一篇: mt19937 -- 高质量随机数