摘要:操作符包括算數(shù)操作符加號減號等,位操作符,關(guān)系操作符和相等操作符。語法此語法會導(dǎo)致性能下降,不建議使用。所有傳遞都是值的傳遞,沒有值的自動賦予值。
1、
可一次定義多變量(,號分隔)
var message = "h1", found = false, age = 20;
3、數(shù)據(jù)類型:
5種基本數(shù)據(jù)類型 : undefined,Null,Boolean,Number,String;
1種復(fù)雜數(shù)據(jù)類型 : Object;
使用 typeof 可檢測變量的數(shù)據(jù)類型
例 : Alert( typeof(message) ) // "String";
typeof 為操作符不是函數(shù),所以可以省略 ()
typepf null // Object;
4、Undefined : 定義但未賦初值。
var message;
alert(message); // undefined
alert(age); // error
5、NUll類型: 一個空對象指針
alert(null == undefiend) // true
6、Boolean類型.
true不一定等于1,false也不一定等于0.
大小寫敏感。
可對任何變量使用轉(zhuǎn)型函數(shù) Boolean。
轉(zhuǎn)換規(guī)則:
if語句自動轉(zhuǎn)換:
var message = "hello";
if(message) { //轉(zhuǎn)為true
alert ( "value id true");
}
7、Number 類型:
* 浮點數(shù)值 var float Num3 = .1 // 有效,但不推薦 * e 表示指數(shù)冪 3.125 e7 ; // 等于 3125000 : 3.125 * 10的7次冪 最高精度是17位小數(shù),計算精度不如整數(shù)。 例 : 0.1 + 0.2 ≠ 0.3 而是 等于 0.3000000……4。 if (a+b == 0.3) { } // 永遠不要用float做測試 * NaN : 即非數(shù)值,是一個特殊的數(shù)值
任何數(shù)除以非數(shù)值都返回NaN,因此不影響其他代碼執(zhí)行。
NaN 的兩個特點 :
任何涉及到NaN的操作都返回NaN,(如 NaN / 10)
NaN與任何值都不相等,包括本身。alet(NaN == NaN) ; //falseisNaN() ; 判斷是否“不是數(shù)值”。
數(shù)值轉(zhuǎn)換 : Number(),parseInt(),parseFloat();
對于任何類型可用第一個,后兩個用于字符串;
Number()轉(zhuǎn)換字符串復(fù)雜且不合理,處理整數(shù)用parseInt();處理浮點數(shù)用parserFloat();
例 : parseInt(“1234blue”); // 12348、String 類型
* 字符字面量
/n : 換行 /t 制表 /r 回車
* 特點
不可變,只能銷毀重建。
* 轉(zhuǎn)為字符串
tostring() : null 和 undefined 沒有此方法,要用String()方法;
簡便轉(zhuǎn)換方法 : 值與字符串相加 (“ ”)。
注意 : 0.9 - "0.4" = 0.5 // 隱式類型轉(zhuǎn)換;
1 + “2” = "12";
9、Object 類型 : 一組數(shù)據(jù)和功能的組合
Object 類型是所有它的實例的基礎(chǔ),所具有的任何屬性和方法同樣存在更具體的對象中。每個實例都具有以下屬性和方法 :
* constructor() : 構(gòu)造函數(shù),保存著用于創(chuàng)造當(dāng)前對象的函數(shù); * hasOwnProperty( property ) : 檢查給定屬性在當(dāng)前對象實例中(不是在原型中) 是否存在; * isPropertyOf(object) : 對象是否是當(dāng)前對象原型; * toLocalString() : 返回對象的字符串表示,與地區(qū)對應(yīng); * toString() : 返回對象的字符串表示; * valueof() : 返回對象的字符串、數(shù)值、布爾值表示,通常與tostring()一樣。
10、操作符 包括算數(shù)操作符(加號、減號等),位操作符,關(guān)系操作符和相等操作符。
* 一元操作符
++i : i = i + 1; // 先自加再賦值
* 一元加減
該操作符對非數(shù)值應(yīng)用時,會像Number()轉(zhuǎn)型函數(shù)一樣對值進行轉(zhuǎn)換。
對對象先調(diào)用valueof和tostring方法。
可用于基本算數(shù)運算,也可以用于轉(zhuǎn)換數(shù)據(jù)類型。
* 位操作符
整數(shù)的補碼為本身,負數(shù)的補碼為取反加一;
按位 非 (NOT) : ~ 表示,反碼;
按位 與 (AND) : & 表示,同為1得1,其他為0;
按位 或 (OR) : | 表示,同為0得0,其他為1;
按位 異或 (XOR) : ^ 表示,同為0,異為1;
左移 : << 以0補位,32位;
有符號右移 : >> 保留符號位 0 : 正 1 : 負;
無符號右移 >>> 負數(shù)以絕對值二進制補碼表示;
* 布爾操作符 : 非(NOT) 與(AND) 或(OR)
邏輯非(!) :
可用于任何值,無論類型都返回布爾值,先轉(zhuǎn)為布爾值,再求反;
邏輯與(&) :
同真為真,其他為假;
短路操作:第一個能決定結(jié)果,后邊就不用求值,如第一個為false,結(jié)果直接為false;
邏輯或(||) :同假為假,其他為真有一個操作符不是布爾值,結(jié)果不一定返回布爾值;
與邏輯與一樣,短路運算;
可用短路邏輯為變量賦值避免賦null和undefined。如 : var result = (A || B) // 當(dāng)A不為null,賦值A(chǔ),否則為B;
* 乘性操作符
乘法 : (*)除法 : (/)求模 : (%) // 余數(shù)
* 加性操作符
5 + 5 = 10 5 + "5" = "55" "str" + 5 + 5 = "str55" "str" + (5 + 5) = "str10"
* 減性操作符 : 先進行隱式類型轉(zhuǎn)換(Number()): 注意轉(zhuǎn)換規(guī)則對number類型友好優(yōu)先
5 - "2" = 3 5 - true = 4 5 - "" = 5 NaN - 1 = NaN
* 關(guān)系操作符 : > < >= <=
比較字符串時比較的事字符編碼值,例 : a 為 97 , B 為 66“B” < "a" // true "23" < 3 // true
* 相等操作符 : == != === !==
相等和不相等 ---- 先轉(zhuǎn)換再比較全等和不全等 ---- 比較但不轉(zhuǎn)換,比較數(shù)據(jù)類型
* 條件操作符(三目運算符)
A ? b : c // A為真時值為b,否則為c
* 賦值操作符 : =
= 右邊的值賦給左邊變量賦值復(fù)合操作符 : *= /= %= += -= <<= >>= >>>=
* 逗號操作符
一條語句執(zhí)行多個操作 : var num1 = 1 , num2 = 2,num3= 3;用于賦值時,總是返回表達式最后一個值 : var num = (5,1,4,8,0) //返回011、語句
* if語句 : 先用Boolean轉(zhuǎn)換
推薦使用代碼塊 : { }
* do - while 語句 : 后測試循環(huán)語句,循環(huán)內(nèi)代碼至少執(zhí)行一次
let i = 0;do {i +=2} while
* while語句 : 前測試循環(huán)語句,有可能不會被執(zhí)行
var i = 0;while(i<10){i += 2;}
* for語句 : var定義的變量會污染全局,之后盡量使用let * var count = 10;
for(var i = 0;i < count;i++){alert(i);}alert(i); //10
* for-in語句 :
一種精準(zhǔn)的迭代語句,可用來枚舉對象屬性,例 : for(property in expression) {} 返回的屬性無序,因瀏覽器而異;
* label語句
可在代碼中加標(biāo)簽,以便將來使用 ;
* break 和 continue :
break直接跳出循環(huán),continue跳到下一次循環(huán);
* with語句 :
將代碼的作用域設(shè)置到一個特定對象中。語法 : with(expression){ } : 此語法會導(dǎo)致性能下降,不建議使用。
* switch語句 :
switch(expression){ case value : statement break; default : statement}12、函數(shù)function functionName(org1,org2...){statements}
* 調(diào)用 : functionName();
可加return設(shè)置返回值;執(zhí)行return后停止并立即退出,位于return后的代碼永遠不會執(zhí)行。
* 理解參數(shù)
不介意傳遞的參數(shù)的種類和個數(shù),因內(nèi)部用數(shù)組來表示,函數(shù)體內(nèi)可以用arguments對象來訪問參數(shù)數(shù)組。命名參數(shù)只是提供便利,不是必須的,可在內(nèi)部判斷參數(shù)的長度完成重載。所有傳遞都是值的傳遞,沒有值的自動賦予undefined值。
* 沒有重載
重載:函數(shù)名相同,參數(shù)的數(shù)量和類型不同。es中定義兩個同名函數(shù),后者會覆蓋前者,通過檢查傳入?yún)?shù)的種類和數(shù)量可以模仿重載。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102850.html
摘要:自我學(xué)習(xí)目前有成千上萬的年輕人在學(xué)習(xí)和開發(fā),希望獲得一份工作。知道的綁定規(guī)則。知道和原型屬性是什么以及它們的作用。高階函數(shù)了解函數(shù)是中的一級對象,這意味著什么知道從另一個函數(shù)返回函數(shù)是完全合法的。了解閉包和高階函數(shù)允許我們使用的情況。 翻譯原文出處:10 JavaScript concepts you need to know for interviews 之前不是鬧得沸沸揚揚的大漠窮...
摘要:是文檔的一種表示結(jié)構(gòu)。這些任務(wù)大部分都是基于它。這個實踐的重點是把你在前端練級攻略第部分中學(xué)到的一些東西和結(jié)合起來。一旦你進入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進行操作。它是在前端系統(tǒng)像今天這樣復(fù)雜之前編寫的。 本文是 前端練級攻略 第二部分,第一部分請看下面: 前端練級攻略(第一部分) 在第二部分,我們將重點學(xué)習(xí) JavaScript 作為一種獨立的語言,如...
摘要:基礎(chǔ)鞏固基礎(chǔ)總結(jié)使用已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)的使用范圍原來越廣泛。這里要注意,務(wù)必將基礎(chǔ)部分掌握牢靠,磨刀不誤砍柴功,只有將基礎(chǔ)部分掌握并建立起系統(tǒng)的知識體系,在后面學(xué)習(xí)衍生的其他模式才能游刃有余。 基礎(chǔ)鞏固:JavaScript基礎(chǔ)總結(jié) 使用JavaScript已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)JavaScript的使用范圍原...
摘要:本文建議有基礎(chǔ)的人看,由于內(nèi)容過多,所以建議配合高級程序設(shè)計服用。一共由三部分組成,分別是最新版本是,簡稱,,。 本文建議有html基礎(chǔ)的人看,由于js內(nèi)容過多,所以建議配合《javascript高級程序設(shè)計》服用。 在開始前我先簡單介紹一下javascript這門語言吧。 javascript誕生于1995年,主要是用來表單的驗證,雖然名字里面有java,但是和java毫無關(guān)系,甚至...
閱讀 3051·2021-09-22 15:52
閱讀 2918·2019-08-30 15:55
閱讀 2713·2019-08-30 15:53
閱讀 2464·2019-08-30 13:21
閱讀 1635·2019-08-30 13:10
閱讀 2492·2019-08-26 12:09
閱讀 2579·2019-08-26 10:33
閱讀 1811·2019-08-23 18:06