主要內容:
js的前世今生js的語法結構Javascript名詞解釋Javascript變量命名規則(重點)Javascript數據類型(重點)Javascript運算符(重點)學習目標:
四、Javascript變量命名規則(重點)
4.1 聲明變量
變量是幹什麼的,是存儲數據的,那存儲什麼種類數據呢?
聲明變量使用關鍵字:var(variable)
你給它賦什麼類型的值,那麼這個變量就是什麼數據類型。
內存中堆區和棧區
4.1.1 單獨聲明
4.1.2 多個變量聲明,中間用逗號隔開
4.1.3 重複聲明
4.1.4 遺漏聲明
4.1.5 顯示聲明與隱式聲明區別
JS中變量聲明分顯式聲明和隱式聲明。
var name = 'muzidigbig';//顯示聲明
name = 'muzidigbig';//隱式聲明(為全局對象(window)的一個屬性)
4.2 JavaScript 嚴格模式(use strict)
4.3 變量提升
變量一定要先聲明後使用,如果先使用後聲明,js的內部機制自然使變量提升。
4.4 let 和var 的區別
var:variable,它是可變的。
let:塊作用域。
4.5 變量的命名規則
變量的命名:變量是由字母,數字,下劃線,$組成,但第一個字符必須是字母或者是下劃線,$開頭。
$:不建議使用,它可能會和其他的框架語法衝突,或者是函數的名字衝突
(1)JavaScript語言的標識符對大小寫敏感,所以a和A是兩個不同的標識符。
(2)首字母可以是任意字母以及美元符號和下劃線。剩餘可以是任意字母,美元符號,下劃線和數字
(3)不能使用javascript中的關鍵字(保留字)來命名變量
(4)中文也可以聲明變量,不建議使用它。
4.6 變量的命名方式
1) 變量的命名規則
第一種命名:帕斯卡命名(大駝峰式命名)
每個單詞的首字符大寫。
例如:UserName。
第二種命名:小駝峰式命名
首個單詞的首字母小寫,其他後面單詞的首字母大寫。
例如:
例如:userName
第三種命名:匈牙利式命名
數據類型+單詞(變量名)
Integer+age
Iage = 25;
String+address
Saddress = 「西安」;
五、Javascript數據類型(重點)
數據類型分類:
在此基本的數據類型的基礎上又增加了一個基本數據類型:Symbol,Symbol 是 ES6 引入了一種新的原始數據類型,表示獨一無二的值。
5.1 列印變量的數據類型:typeof
請注意:
NaN 的數據類型是 number
數組(Array)的數據類型是 object
日期(Date)的數據類型為 object
null 的數據類型是 object
未定義變量的數據類型為 undefined
5.1 基本數據類型
5.1.1數字類型(number)
c語言中:
int(整數),float(單精度浮點型),double(雙精度浮點型),char(字符),string(字符串)。
二進位(binary):0b101010101
八進位:0o2535
十六進位:0x69852
進位轉換:
toSring():十進位轉換其他的進位
parseInt():其他的進位轉換十進位
最大值:MAX_VALUE
最小值:MIN_VALUE
浮點數不能比較
NaN:Not aNumber:不是一個數值
一些特殊情況(除數為0,最大值變化)
5.1.3布爾類型(boolean)
true(真),false(假),都是小寫的。
TRUE,FALSE,True,False:這些都不正確。
5.1.2字符串類型(string)
字符串:加單引號或者是雙引號
字符串連接:使用的是+
模板字符串:
5.1.4 undefined
typeof
5.1.5 null
typeof
null == undefined
5.1.6 null和undefined的區別
1.類型不相等
2.強制類型轉換值不一樣
var re1 = Number(undefined);//NaN
var re2 = Number(null);//0
3. 比較
Null == undefined//true
Null === undefined//false
5.2 引用類型(object)
六、Javascript運算符(重點)
6.1算術運算符
+,-,*,/,%(求餘數),++,--,**(求冪數-es7新增)
實例練習:
6.2一元運算符
+(正),-(負數),++,--
兩數交換
6.3 比較(關係)運算符
>,<,>=,<=,!=,!==(不全等),==,===(全等:值和類型都相等)
6.4邏輯運算符
&&:邏輯與,兩個必須同時為真
true && true :true
false && true:false
true && false:false
false && false :false
八哥總結說明:
如果前面的表達式是true,就取後面的值,如果前面的表達式為false,就取前面的值。
||:邏輯或,只要有其中一個為真就可以
true || true :true
false || true:true
true || false:true
false || false :false
八哥總結說明:
如果前面的表達式是true,就取前面的值,如果前面的表達式為false,就取後面的值。
!:邏輯非,取反
例題:
怎樣輸出:true和false
console.log(Boolean(0) && Boolean('abc'));
短路問題:輸出結果是?
6.5賦值運算符
=,+=,-=,*=,/=,%=
=:賦值
==:比較(等於)
===:比較(全等)
6.6條件運算符(三目運算符)
表達式1?表達式2:表達式3
如果表達式1為真(true),計算表達式2的值,如果為假(false),計算表達式3的值。
6.7等性運算符
Null==undefined//true
Null===undefined//false
true == 1;
false ==0;
NaN == NaN//false
NaN !== NaN//true
6.8運算符的優先級
6.9 隱式類型轉換
6.10強制類型轉換
Number():轉化成數值
只有純數字的才能轉換得到真實數字。
布爾類型轉換為Number:true轉換為1、false轉換為0。
未定義類型轉換為Number:underfind轉換為NaN。空類型轉換為Number:null轉換為0。
String():轉化成字符串
Boolean():轉化成布爾
八哥總結說明:
1. NaN ,0 ,"",'' ,underfind, null 轉換為:false。
2. 正數,負數都是:true
3. 只要不是空字符串都是:true
parseInt():將字符串轉化為整數
parseFloat():將字符串轉化為浮點數
作業:
1.變量加var和不加var的區別
2.變量的提升
3.短路的應用