//這些內容是根據貴校張偉老師的 javaScript 課程,整理筆記而成
//不會一個個知識點的記筆記,只去記錄一些比較坑的點或者比較特別的點1、三個基本概念(變量、值、類型)
*變量沒有類型,只有類型
2、變量聲明關鍵詞:let,
var,
const(使用const時,會使變量和值之間的引用關係不能再改變。而js中的原子值無法改變)
3、類型:7種(symbol,null,undefined,number,string,object,boolean)
4、typeof的三種例外:
null:object
被聲明,未賦值,undefined
typeof a(未被聲明的,不會報錯,只會返回undefined)
5、number 控制有效位 toFixed()//小數點後
toPrecision()//有效位
0.1+0.2(Number.EPSILON)
NaN(不與任何值相等,包括自己)
Number.MAX_VALUE(當超過後,會靠近最接近的數)
Infinity(無窮大)
0 -0(如何區分;==0&&/Ifinity==Infinity)
Object.is(a,b)
eg:var a = NaN,
b = NaN;
console.log(Object.is(a, b))
判斷整數:isInteger
6、String類型(16個無符號整形)
一些方法:
concat:連接
indexOf:返回一個子字符串
charAt:獲取指定位置的字符
[]簡寫模式
length:長度
toUpperCase:大寫
聲明後,就不再改變
使用雙引號
轉義:\
'""'
模板字符串:`` ¥使用變量: {a+b}
7、object類型
1)創建 對象字面量、constructor
2)訪問value obj.key obj[key] //第二種使用更廣一些,比如key中間有空格,但是囉嗦
3)刪除 delete
4)ES6中提供更簡單的方式
let name = 'nalin'
let age = 11
let person = {
name,
age
}
console.log(person)
8、build-in object(boolean string number)
**使用constructor,絕大多數都需要new
**自動裝箱、自動拆箱
如果build-in不加new時,實現強制類型轉換
1)封裝了boolean的object的一個奇怪特性,object是一種像是真的值,取反會變成假
let a = new Boolean(false)
if (!a) {
console.log(1111);
} else {
console.log(222222);
}
9、array
1)創建
var a = [0, 1]
a[3] = 1
console.log(a)//會有空洞
2)方法:push
pop
unshift
shift
splice(a,b)//刪了a-b之間的東西
splice(a,b,‘a’,‘da’)//刪了a-b之間的東西,然後把後面的添加進去(如果放入的數據多於刪掉的,會將之後的佔用)
slice(a,b)切片
10、強制類型轉換後爲false:共6種
“N0fun”
N:NaN
0:
false:
undefined:
n:null
""