當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS复习个人笔记
運算符優先級
一元運算符 > 算術運算符 > 比較運算符 > 邏輯運算符 > 三元運算符 > 賦值運算符 > 逗號運算符
console.log('hello'+(1<2)?'21':'12') //21 [注意]邏輯取反運算符屬于一元運算符,其優先級最高 復制代碼1、一元運算符
//一元加(+)運算符對數值無影響 var num = 25;num = +num;//25 //一元加(+)運算符對非數值調用Number()函數 var num1 = '01',num2 = 'false';num1 = +num1;//1 等同于num1 = Number(num1);num2 = +num2;//0 * +(new Date())會返回時間毫秒數 //一元減(-)運算符主要用于表示負數 var num = 25;num = -num;//-25 //對于非數值先調用Number()再轉換為負數【注意】一元加和一元減運算符主要用于基本的算術運算,也可以用于轉換數據類型復制代碼自增(++)自減(--)運算符 ++num;等同于: num = num + 1; 【注意】1、自增自減前運算符通過Number()轉型函數將操作數轉換為數字,然后給數字加減1,并將加減1后的數值重新賦值給變量、數字元素或者對象屬性。2、++x并不總是和x = x+1完全一樣,++運算符從不進行字符串連接操作,它總是會將操作數轉換為數字并增1復制代碼#### 加法(+) //單數值數組和valueOf()返回值為數值的自定義對象會轉換為數值 console.log(1 + []);//1 var o = {valueOf: function(){return -1;} } console.log(1 + o);//0 如果進行算術加法運算,undefined轉換為NaN,null轉換為0,false轉換為0,true轉換為1 console.log(undefined + undefined);//NaN console.log(null + null);//0 console.log(false + false);//0 console.log(true + true);//2 如果進行字符串連接,undefined轉換為'undefined',null轉換為'null',false轉換為'false',true轉換為'true' console.log('' + undefined);//'undefined' console.log('' + null);//'null' console.log('' + false);//'false' console.log('' + true);//'true'#### 減法(-) Date函數在加法運算中通過toString()轉換而在減法中通過Number()函數轉換 undefined轉換為NaN,null轉換為0,false轉換為0,true轉換為1 console.log(1 - undefined);//NaN console.log(1 - null);//1 console.log(1 - false);//1 console.log(1 - true);//0 復制代碼2、關系運算符
1、[注意]不論什么進制的數字,在進行關系比較時,最終都轉換為十進制進行運算 console.log(10 === 0xa);//true console.log(NaN === NaN);//false console.log(+0 === -0);//true 2、對象的比較 javascript對象的比較是引用的比較,而不是值的比較。對象和其本身是相等的,但和其他任何對象都不相等。如果兩個不同的對象具有相同數量的屬性,相同的屬性名和值,它們依然是不相等的 console.log([] === []);//false console.log({} === {});//false console.log(function(){} === function(){});//falsevar a = {}; b = a; console.log(a === b);//true 復制代碼3、三元運算符
定義: variable = boolean_expression ? true_value : false_value; 本質上,這就是基于對boolean_expression求值的結果,決定給變量variable賦什么值。如果求值結果是true,則給變量variable賦值true_value;如果求值結果是false,則給變量variable賦值false_value典型應用場景,判斷一個變量是否有定義(并擁有一個有意義的真值),如果有定義則使用它,如果無定義則使用一個默認值: greeting = 'hello ' + (username ? username : 'there'); 等同于 greeting = 'hello '; if(username)greeting += username; elsegreeting += 'there';* 三元運算符和if。。。else語句類似但是前者有有返回值 復制代碼總結
- 上一篇: RabbitMQ消息队列生产者和消费者
- 下一篇: 服务器监控软件ZABBIX