在工作中跟領(lǐng)導(dǎo)的關(guān)系相處得很好的的話是很利于我們升職加薪的,那么如何讓領(lǐng)導(dǎo)對(duì)你另眼相看呢?
很簡(jiǎn)單,打鐵還需自身硬,只要你的專業(yè)技能夠硬,個(gè)人能力夠強(qiáng),你的領(lǐng)導(dǎo)自然會(huì)對(duì)你另眼相看,
那么問(wèn)題來(lái)了,有人說(shuō)我的能力不夠強(qiáng)怎么辦?我會(huì)輕輕地告訴你,你該溫習(xí)一下JavaScript了,
我們今天就來(lái)溫習(xí)部分JS的表達(dá)式與操作符
什么是表達(dá)式呢?
表達(dá)式就是表達(dá)你的想法或者說(shuō)是意圖。
表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值、用操作符把常數(shù)和變量連接起來(lái)的代數(shù)式。
一個(gè)表達(dá)式可以包含常數(shù)、變量、操作符。
JavaScript表達(dá)式:將同類型的數(shù)據(jù)(如常量、變量、函數(shù)等),用操作符(運(yùn)算符)按一定的規(guī)則連接起來(lái)的、有意義的式子稱為表達(dá)式。
算術(shù)表達(dá)式:由算術(shù)運(yùn)算符和括號(hào)連接起來(lái)的式子。
字符串表達(dá)式:字符串表達(dá)式是由操作符(運(yùn)算符)、變量和常數(shù)(字符串常數(shù)、數(shù)字常數(shù)或?qū)ο蟪?shù))的組合
關(guān)系(比較)表達(dá)式:指運(yùn)算符為<,<=,>,>=,==,!=,===的表達(dá)式。
邏輯表達(dá)式:指運(yùn)算符為或||、與&&、非!的表達(dá)式。
表達(dá)式我們先了解一下含義,知道是什么,后面再詳細(xì)的說(shuō),今天我們重點(diǎn)說(shuō)操作符
先說(shuō)一下JavaScript運(yùn)算符
1、一元操作符(單目操作符)
遞增和遞減操作符(分前置型和后置型)。
++是遞增操作符,先賦值 后自加
--是遞減操作符,先賦值 后自減
比如
var a=10;
var b=a++;//先賦值,后運(yùn)算
console.log(a); 11 // a=11
console.log(b); 10 //b=10
a++
console.log(a); 11 // 直接運(yùn)算
當(dāng)不出現(xiàn)賦值時(shí),執(zhí)行自增(自減)運(yùn)算;但是出現(xiàn)賦值時(shí),先賦值,后運(yùn)算;
++i 先自加 再賦值
--i 先自減 再賦值
比如
var a=10;
var b=++a;//先運(yùn)算,后賦值;
console.log(a);//a=11
console.log(b);//b=11
我們可以這樣,來(lái)計(jì)算一下,求出a,b的值
var a = 12;
b=(a++)+(a--) - (--a) + (a--) + (a++);
console.log(a); 11 //a = 11;
console.log(b); 35 //b = 35;
一元加、減操作符
這兩種操作符將執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能。
區(qū)別就是 減操作符 執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能后,將得到的數(shù)轉(zhuǎn)換為負(fù)數(shù)。
比如
var i = "45";
console.log(+i); 45
console.log(-i); -45 //在前面加了個(gè)-號(hào)
2、加性操作符
-
加法操作符 +
var a = 2 + 4; 值為6,直接相加的和 var a = 2 + "4"; 值為"24",直接拼接成一個(gè)字符串
也就是說(shuō)如果運(yùn)算中出現(xiàn)字符串類型,+ 將執(zhí)行拼接的功能,轉(zhuǎn)成字符串。
- 減法操作符 -
如果有一個(gè)操作數(shù)是字符串、布爾值、 null 或 undefined ,則先在后臺(tái)調(diào)用 Number() 函數(shù)將其轉(zhuǎn)換為數(shù)值,然后再根據(jù)前面的規(guī)則執(zhí)行減法計(jì)算。如果轉(zhuǎn)換的結(jié)果是 NaN ,則減法的結(jié)果就是 NaN ;
比如
var a1 = 5 - true; // 4,因?yàn)?true 被轉(zhuǎn)換成了 1
var a2 = NaN - 1; // NaN
var a3 = 5 - 3; // 2
var a4 = 5 - ""; // 5,因?yàn)?" 被轉(zhuǎn)換成了 0
var a5 = 5 - "2"; // 3,因?yàn)?2"被轉(zhuǎn)換成了 2
var a6 = 5 - null; // 5,因?yàn)?null 被轉(zhuǎn)換成了 0
3、乘性操作符
乘性操作符遇到非數(shù)值型將執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能。(隱式類型轉(zhuǎn)換)
* 乘法操作符
var a= "5"
var b= 2
console.log(a*b); 10 // 值為10
/ 除法操作符
var a= 10
var b= 2
console.log(a/b); 2 // 值為2
% 取余操作符 (求模(余數(shù))操作符由一個(gè)百分號(hào)( % )表示)
比如
var a = 10 % 2; //0
var a1 = 8 % 8 //0
var a2 = 7 % 10; //7
4、關(guān)系操作符
< 、 > 、 <= 和 >= 這幾個(gè)關(guān)系操作符用于對(duì)兩個(gè)值進(jìn)行比較
這幾個(gè)操作符都返回一個(gè)布爾值
比較的是字符的編碼數(shù)字的大小,小寫(xiě)字母的數(shù)值 大于 大寫(xiě)字母的數(shù)值
6個(gè)字母數(shù)值依次遞增,如果首個(gè)字符相同,比較第二個(gè),以此類推。
var result = "23" < "3"; //true
var result = "23" < 3; //false
var result = "a" < 3; // false,因?yàn)?a"被轉(zhuǎn)換成了 NaN
由于字母 "a" 不能轉(zhuǎn)換成合理的數(shù)值,因此就被轉(zhuǎn)換成了 NaN 。
根據(jù)規(guī)則,任何操作數(shù)與 NaN 進(jìn)行關(guān)系比較,結(jié)果都是 false 。
于是就出現(xiàn)了有意思的情況
console.log(NaN < 3); false
console.log(NaN >= 3); false
5、相等操作符
相等和不相等——先轉(zhuǎn)換再比較(僅僅比較轉(zhuǎn)化后的值是否相等);
全等和不全等——僅比較而不轉(zhuǎn)換(不僅比較值還比較類型)。
都返回布爾類型的值(true 或 false)
1,相等和不相等 ( == 和 != )
返回值為true的總結(jié):
null == undefined //true
1 == true //true
0 == false //true
"" == 0 //true
"" == false //true
NaN != NaN //true
true == "1" //true
false == "0" //true
2, 全等和不全等
===
除了在比較之前不轉(zhuǎn)換操作數(shù)之外,全等和不全等操作符與相等和不相等操作符沒(méi)有什么區(qū)別。全等操作符由 3 個(gè)等于號(hào)( === )表示,它只在兩個(gè)操作數(shù)未經(jīng)轉(zhuǎn)換就相等的情況下返回 true ,
如下例所示:
console.log("55" == 55); //true,因?yàn)檗D(zhuǎn)換后相等
console.log("55" === 55); //false,因?yàn)椴煌臄?shù)據(jù)類型不相等
!==
不全等操作符由一個(gè)嘆號(hào)后跟兩個(gè)等于號(hào)( !== )表示。它在兩個(gè)操作數(shù)未經(jīng)轉(zhuǎn)換就不相等的情況下返回 true 。
例如:
console.log("55" != 55); //false,因?yàn)檗D(zhuǎn)換后相等
console.log("55" !== 55); //true,因?yàn)椴煌臄?shù)據(jù)類型不相等
好了,今天就暫時(shí)先說(shuō)到這里,我們下期再會(huì)。
因能力有限,所以不免會(huì)出錯(cuò),若有問(wèn)題請(qǐng)幫忙指出,避免誤導(dǎo)他人
謝謝?。?!