JavaScript書寫基礎和基本數據類型
@jarringslee
js書寫基礎和規范
js是一種在客戶端(瀏覽器)運行的編程語言,可實現人機交互的效果。
js組成:
js由兩部分組成:
- ECMAScript:js的語言基礎,js遵循其語言邏輯。它規定了js的基礎語法核心知識,如變量、分支、循環等;
- Web APIs:分為DOM(頁面文檔對象型:操作文檔,比如對頁面元素進行移動、大小、添加刪除等操作)和BOM(瀏覽器對象型:操作瀏覽器,比如頁面彈窗、檢測窗口寬度、存儲數據到瀏覽器等)。
js書寫位置:
-
行內js
-
內部js直接寫在html文件中(通常寫在
</body>
標簽上面),用<script>
標簽包裹住 -
外部js通過link鏈接
<body><script src="js文件地址"></script> </body>
js結束符:
可以用分號結尾,也可以不寫,統一格式即可。
輸入和輸出語法:
-
輸出語法
-
向body內輸出內容:
document是文檔的意思,輸出內容也可以用標簽包裹。
document.write('輸出內容') document.write('<h1>我是標題</h1>')
-
頁面彈出警示框:
alert('輸出內容')
-
控制臺輸出(用戶無法看到,在控制到console中):
console.log('控制臺輸出') //簡寫為log
-
-
輸入語法
-
顯示對話框和文字信息
promot('請輸入姓名')
-
被引號包裹的內容可以用單引號’’、雙引號""或反引號``
執行順序:
- 按文檔流順序執行代碼;
- alert()和promot()會跳過頁面渲染先被執行
js字面量
字面量literal在計算機中描述事/物
- 月薪是30000 此時30000是數字變量
- ‘泥嚎’ 泥嚎是字符串字面量
- [] 是數組字面量 {} 是對象字面量
變量、常量、數據類型
變量 let
變量是計算機中用來存儲數據的容器,并不是數據本身。
變量的聲明/定義/創建: 聲明關鍵字 變量名
let age = 18
**變量的本質:**是程序在內存中申請的一塊用來存放數據的小空間
存儲輸入的數據:
let uname =prompt('請輸入姓名')document.write('姓名:', uname, '。')//或者const age = prompt('請輸入您的年齡')document.write('年齡:${age}<br>')
**數組變量:**直接聲明,等號后寫中括號,元素間用逗號隔開。
數組長度:變量名+點+length(最大元素的下標+1)
let uname = [111, 222, 'num', 231]document.write('姓名:', uname[2], '。')document.write('數組長度:', uname.length, '。')
常量 const
聲明時必須賦值,且不允許再次賦值,無法被修改。 const PI = 3.14
數據類型
基本數據類型:
-
**數字類型Number:**變量聲明后直接創建。可以是整數、小數、正數、負數。
js、Python是弱數據類型的語言:一個關鍵字可以聲明任意類型的數字(整數、小數…)。
而c、java就是強數據類型的語言:int整數、float或者double為浮點數。
? 數字的運算符:算術運算符:
- 優先級最大的是括號中或者次方(
**
):4**2表示4的4次方 - 乘 除 取余
- 加 減
如果碰到非數字進行了算術運算,則會輸出:NaN。
NaN代表一個計算錯誤。它是粘性的:任何和其有關的操作都會返回NaN。“NaN==NaN”的命題也是錯的。
- 優先級最大的是括號中或者次方(
-
**字符串類型string:**變量聲明后用引號(單引號、雙引號、反引號)包裹創建內容。注意若數字被引號包裹了,那它也是字符串類型。
空字符串:
let str = ''
console'log('')
字符串拼接:加號+ 可以把相鄰的兩個字符串或相鄰的字符串和數字相連在一起。
document.write('我今年' + 19 + '歲了') //等價于 document.write('我今年', 19, '歲了') //或者 let age = 19 document.write('我今年' + age + '歲了') //或者 let age = 19 let aa = '我今年' let bb = '歲了' document.write(aa + age + bb)
直接在字符串的引號中書寫變量名:模版字符串
字符串用反引號包裹,引號中的變量名用**
${}
**包裹document.write(`我今年${age}歲了`)
-
**布爾類型boolean:**判斷真假的數據類型,有true(真)和false(假)兩個數據類型
let mybool = true document.write(mybool)
若直接在輸出內容中放一個判斷問題(不加引號),也可以直接輸出true或false
document.write(99 < 1000)
-
未定義類型undefined: 值直接為undefined。在不聲明變量、不賦值的情況下默認值為undefined。一般不直接把某個變量賦值為undefined。
let buy document.write(buy) //輸出值為undefined
**使用場景:**若后端有一個變量傳過來,可以通過判斷這個值是不是undefined來確定這個值是否有效。
-
空類型null: null是對象數據類型(object),表示創建了變量但是沒有賦值,代表“無”“空”“未知”的一個特殊值
let obj = null
undefined是沒有賦值(什么也不是,不能參與運算),null表示賦值了但是內容為空(沒有值,參與運算時默認為0)
document.write(undefined + 1) //輸出NaN document.write(null + 1) //輸出值為1
**使用場景:**如果一個變量中確定存放的是對象,但還沒有準備好該對象,可以先放null
檢測數據類型 typeof
在輸出中使用,可以直接輸出變量類型名
書寫方法:
typeof + 空格 + 變量名
(常用)typeof + (變量名)
let num = 10console.log(typeof num) //輸出numberlet str = 'pink'console.log(typeof str) //輸出stringlet no = ''console.log(typeof no) //輸出stringlet flag = falseconsole.log(typeof flag) //輸出booleanlet unconsole.log(typeof un) //輸出undefinedlet obj = nullconsole.log(typeof obj) //輸出object