JS基礎
- JS基礎
- 架構體系
- 四種使用JS的方式
- 注釋、變數、識別符號、輸入輸出
- JS資料型別及轉換
- 基本型別:
- 兩等號和三等號
- 值型別(堆疊存盤從上往下)
- 參考型別(堆存盤從下往上、堆疊存盤,賦值的是記憶體地址)
- typeof
- 數值的轉換
- 轉為boolean值:
- 轉為字串
- 轉數字
- JS中的[特殊符號](https://www.runoob.com/tags/ref-entities.html)
- JS運算子與運算式
- JS結構
- switch與if else的區別
JS基礎
了解:是一種嵌入嵌入在網頁中的程式段,解釋性語言,被瀏覽器解釋執行,ECMA標準化,ES6深入理解及學習
作用:JS增刪改查,在html網頁動態寫入文本,回應事件作出相應的處理,事件系結,頁面特效,本地存盤,cookie的一些應用,服務端的應用,如node.js,第三方庫中專業應用,如three.js,echar.js,baidumap.js,date.js,
架構體系
核心語言定義、原生物件和內置物件、BOM(Browser Object Model)、DOM(Document Object Model)、事件處理模型,
四種使用JS的方式
- 內嵌式
<script type='text/javascript'>
//...
</script>
- 引入外部JS檔案
<script src=''></script>
- 直接撰寫在元素的事件屬性中,on開頭
<button onclick=''>Click me</button>
4.偽URL方法(a標簽href屬性寫入js代碼)
<a href="javascript:window.alert('Hello word')"></a>
注釋、變數、識別符號、輸入輸出
識別符號:變數,常量,陣列,函式,檔案,型別名等
關鍵字:在JS系統中有特殊意義的單詞,
保留字:關鍵字的備胎,
例:

關鍵字保留字等不可作為識別符號,
const定義常量,常量名全部大寫初始化后,不能修改
//單行注釋
/*多行注釋*/
//宣告變數
var a = 1;
//定義常量,常量名全部大寫初始化后,不能修改
const PI = 3.14
常用輸入輸出:
輸出
document.write(),alert(),console.log()
輸入
window.prompt()
<script type="text/javascript">
console.log('window.prompt()',window.prompt())
</script>


JS資料型別及轉換
基本型別:

undefined:變數宣告但未初始化,函式無明確回傳值時,
null:從undefined派生出來的,表示不存在的物件,(空物件)
null==undefined true(值相同)
null===undefined false(型別不同)

兩等號和三等號
- ===:稱為等同符,當兩邊值的型別相同時,直接比較值,若型別不相同,直接回傳false;
- ==:稱為等值符,當等號兩邊的型別相同時,直接比較值是否相等,若不相同,則先轉化為型別相同的值,再進行比較;
- NaN==NaN //回傳false,NaN和所有值包括自己都不相等


值型別(堆疊存儲從上往下)
定義為undefined、數字、字串、布爾型、Symbol(‘s’)

參考型別(堆存盤從下往上、堆疊存盤,賦值的是記憶體地址)
物件、陣列、null(特殊的參考型別,指標指向為空地址)、函式(特殊的參考型別)

<script>
//值型別
let a = 100
let b = a
a = 200
console.log(b) //100
//參考型別
let c = { age: 20 }
let d = c
c.age = 21
console.log(d.age) //21
</script>
typeof
typeof作用:識別所有值型別,識別函式、判斷是否為參考型別(不可細分)object
typeof(NaN) // ‘number’
數值的轉換
轉為boolean值:
- string:有值為true,空字串為false
- undefined,null轉換都為false
- 數值:非0為true(如Boolean(-1.34)為true)
Boolean(string1,number1,boolean1,undefined,null)
Boolean("") //false
Boolean(" ") //true
Boolean(undefined) //false
Boolean(null) //false
Boolean(-1.34)//true
轉為字串
方法:String(),toString(),加法+
String(number) //'29'
String(boolean) //'true'
String(undefined) //'undefined'
String(null) //'null'
number.toString() //'29'
boolean.toString() //'true'
'123'+1 // '1231'
1+'123' // '1123'
'123'+true // '123true'
'123'+'a' // '123a'
一個變數未初始化為undefined不能使用toString()方法
空物件為null也不能使用toString()方法

轉數字
方法:Number(),parseInt(),parseFloat()
-
Number():undefined——NaN,null——0,轉為數字,
-
parseInt():undefined——NaN,null——NaN,轉為整數,把字串從左往右轉換,遇到非有效數字符號停止轉換,如果第一個字符就是非有效數字符號,則回傳NaN,如果轉換成功一部分則回傳轉換成功的數字,執行的是一種部分轉換,
-
parseFloat():undefined——NaN,null——NaN,轉為浮點數,把字串轉換為浮點數,有效數字符號包含小數點,
Number(true) // 1
Number('123') // 123
Number('a123') // NaN
Number('.123') // 0.123
Number('.123.1') // NaN
Number('-123.1') // -123.1
Number('+123.1') // 123.1
Number(undefined) // NaN
Number(null) // 0
parseInt('.123')//NaN
parseInt('123.123')//123
parseInt('asd.123')//NaN
parsenInt('-12hello123')//-12
parseFloat('.123')//0.123
parseFloat('123.123')//123.123
parseFloat('asd.123')//NaN
parseFloat('123.123.99')//123.123
parseFloat('.-12hello123')// NaN
parseFloat('.12hello123') // 0.12
parseFloat('-12hello123')//-12
JS中的特殊符號
空格,<,>,著作權符號,&符號
 ;<,>,©,&
轉義符:

JS運算子與運算式

賦值運算子:=
算術運算子:+,-,*,/,%(取模,求余數)
運算優先級:先乘除模后加減
注:
3/5:0.6
3%5:3
關系運算子:

!==:完全相等時為false

&&:

!優先級最高:


++、–

JS結構
-
順序結構
代碼按照由上到下的順序一行一行地執行,程式執行程序中沒有分支、沒有重復,這種結構稱為順序結構 -
選擇結構
通過對一定條件判斷之后,選擇將要執行的陳述句,它可以分為簡單選擇和多分支選擇, -
回圈結構
回圈結構也叫重復結構,是指重復執行一個或幾個模塊,直到滿足某一條件為止,
switch與if else的區別
對于switch陳述句來說,起實際是使用一個跳轉表實作分支結構,不需要一次進行比較每一個所需要的條件,進行比較的次數為1,很明顯對于if else陳述句,最少的比較次數為1,跟switch相比,在時間方面,switch陳述句的執行速度比if else要快,但是在程式執行占用的空間方面,switch陳述句需要一張跳轉表來維護,這個跳轉,表的本質是一個擁有標號的陣列,需要額外的存盤空間,if else陳述句的空間效率更好一點,switch是一個很典型的空間換時間的例子,但是switch只能判斷是一個指定值的資料,而不能對一個區間中的資料進行判斷,這時候選擇if…else陳述句是一個很好的選擇,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/201821.html
標籤:其他
