ECMAScript: (3/5/6/7)它是JS語言的標准,規定了JS的編程語法和基礎核心知識
DOM: document object model 文檔對象模型,提供給JS很多操作頁面中元素的屬性和方法
BOM: browser object model 瀏覽器對象模型 ,提供了很多操作瀏覽器 的屬性方法,而這些方法都存放在window瀏覽器對象上
1.ECMAScript (ES)
=>命名規范
->只能用數字,字母,下划線起名,而且數字不能做開頭
->不能使用關鍵字和保留字做名字(掌握常用的關鍵字和保留字)
->嚴格區分大小寫
->駝峰命名法,名字有一個或多個英文(英文簡寫)
組成(只是建議)不是規范 方便查看
add/insert/create/append 增加/插入/創建/追加
del/remove/clear 刪除/移除/清空
update/replace/修改/替換
clone/copy 克隆/復制
...
=>變量和常量
var num=12;
num=13;
num是變量 12是常量
賦值的操作其實是發變量和常量建立了連接關系
->常量就是一個具體值:就是數據類型
基本數據類型(值類型): Number,string,boolean,null,undefineg
引用數據類型
object: {} , [] , /^-?(\d|([1-9]\d+))(. \d+)?$/ ,new Date()....
function:
var obj={name:"zf"}
->預解釋的時候首先聲明一個叫做obj的變量
->開辟一個新的內存空間(有一個16進制的地址)
->把對象的屬性名和屬性值儲存到這個空間中
->把空間地址賦值給變量(此時變量和常量之間就建立了連接)
====================================
=>檢測數據類型
Number:
NaN:not a number 不是一個數 但是屬於Number類型的 typeof NaN->'Number'
isNaN([val]): 檢測一個內容是否為有效數字,是的話返回false,不是返回true
NaN===NaN : false
toFixed([number]):保留小數點多少位
var num=Math.PI;//->圓周率:3.1415926
num.toFixed(2) ->'3.14'
字符串string: 只要使用' 引號' 或者"雙引號 "包起來的都是字符串
charAt
charCodeAt
substr
substring
slice
indexOf
lastIndexOf
toUpperCase
toLowerCase
split
replace
...
Boolean: 布爾 true/false
! 取反
!!把一個值轉換為布爾類型值<=>Boolean
只有"0,NaN,空字符串,null,undefined"五個值代表假,其余都是真
null/undefined: 空/未定義
數組
方法的意思/參數意思/返回值/原有數組是否改變
push ary[ary.length]=x ary.splice(ary.lenth,0,x)
增加數組最后一項
pop ary.length- - ary.splice(ary.length-1,1)
刪除數組最后一項
shift
刪除數組前一項
unshift
增加數組前一項
splice
裁件拼接
concat
合並多個數組
join
toString
sort
reverse
indexOf/lastIndexOf
forEach
map
...
Math: 數學函數,本身是一個對象數據類型,里面提供了很多操作數字的方法
Math.abs
Math.ceil
Math.floor
Math.round
Math.random Math.round(Math.random()*(m-n)+n)->[n-m]
Math.max
Math.min
Math.pow Math.pow(10.3)->1000 十的三次冪
Math.sprt Math.sprt(100)->10 給一百開平方
....
在控制台執行:dir(Math)可以查看Math中的所有方法,自己總結其余方法的意思
檢測數據類型:
typeof ->typeof null==='object' 及typeof的細節問題
instanceof
constructor
Object.prototype.toString.call()
==================================
=>三個判斷和三個循環
判斷
if,else if,else
swith,case
三元運算符
循環
for
for in
while