1.完整的js是由三個部分組成的
(1)ecmascript:提供核心語言功能,也就是語法,區分大小寫的
(2)dom:提供訪問和操作網頁內容的方法和介面
(3)bom(browser objects):提供與瀏覽器互動的方法和介面
2.js的識別符號:
定義:變數、函式、屬性的名字,或者函式的引數。
識別符號的命名規則:
(1)由字母、數字、下劃線(_)或美元符號($)組成
(2)不能以數字開頭
(3)不能使用關鍵字、保留字等作為識別符號
3.js的資料型別
(1)console.log();在控制台中列印
typeof();測試變數型別
console.log(typeof(name));在控制台中列印
變數name的型別
(2)number:表示整數和浮點數
nan:即非數值(not a number)
說明:1)任何涉及nan操作(如nan/10)都會返回nan
2)nan與任何值都不相等,包括nan本身
isnan(n)函式:檢測引數n是否為「非數值」,返回值為boolean
說明:isnan()對接收的數值,先嘗試轉換為數值,再檢測是否為數值。所以,isnan("16")返回值為false
3) 把非數值轉換為數值型別:number()、parseint()、parsefloat()
說明:number()可以用於任何資料型別,如果遇到強行轉換字串,則結果是nan;parseint()和parsefloat()則專門用於把字串轉換成數值。
parseint():會忽略字串前面的空格,直至找到第乙個非空格字元,常用於提取整數。
說明:parseint():轉換空字串或者開頭為非數字時,返回nan;parseint()這個函式提供第二個引數的含義:進製轉換,如parseint("oxf",16)=15
parsefloat():從第乙個字元開始解析每個字元,直至遇見乙個無效的浮點數字元為止。
說明:即第乙個小數點有效;parseint()始終都會忽略前導的零,而parsefloat()可以提取出小於1的小數。
parsefloat("12.34.56px")=12.34
parseint("12.34.56px")=12
parsefloat("0.12px")=0.12
parseint("0.12px")=0
(3)str.tostring():將str(可以是數值、布林值、物件和字串)轉換為字串
說明:在不知道要轉換的值是不是null或undefined的情況下,還可以使用string()函式,它能夠將任何型別的值轉換為字串。
(4)boolean(x):將x轉換為布林型
除0之外的所有數字,轉換為布林型都為true;除""(空的)之外的所有字元,轉換為布林型都為true;null和undefined轉換為布林型為false
4.js算數操作符
(1)算術操作符:+、-、*、/、%、遞增、遞減
遞增:++a或a++
區別:++a是先返回遞增之後的a的值,a++是先返回a的原值,再返回遞增之後的值,例:
num1=10,num2=5,num3=++num1-num2;結果num1=11,num3=6
num1=10,num2=5,num3=num1++-num2;結果num1=11,num3=5
(2)邏輯操作符:&&、||、!(非)
1)&&與(只要有乙個條件不成立,返回false )
說明:在有乙個運算元不是布林值的情況,邏輯與操作就不一定返回值,此時它遵循下列規則:
如果第乙個運算元隱式型別轉換後為true ,則返回第二個運算元。如80&&55=55;"hello"&&65&"abc"=abc;
如果第乙個運算元隱式型別轉換後為false,則返回第乙個運算元。如0&&88=false;null&&5=null
2)||或(只要有乙個條件成立,返回true)
說明:在有乙個運算元不是布林值的情況,邏輯與操作就不一定返回值,此時它遵循下列規則:
如果第乙個運算元隱式型別轉換後為true,則返回第乙個運算元。如"hello"||0=hello;
如果第乙個運算元隱式型別轉換後為false ,則返回第二個運算元。如0||""||"abc"=abc;
(3)賦值操作符:=、+=、-=、*=、/=、%=
(4)比較操作符:>、=、<=、==(只比較數值)、===(比較數值和型別)、!=、!==
(5)三元操作符:
語法:條件?執行**1:執行**2
說明:可代替簡單的if語句,如果條件成立,執行**1,否則執行**2
例:var soce=85;var result=(soce>=60)?"及格":"不及格";
js常用方法 1 js深拷貝
什麼是js深拷貝?當每個物件的值都指向同乙個堆記憶體,這樣的話不便於我們做操作,所以誕生了js深拷貝 深拷貝作用在引用型別上,例如 object,array 深拷貝不會拷貝引用型別的引用,而是將引用型別的值全部拷貝乙份,形成乙個新的引用型別,這樣就不會發生引用錯亂的問題,使得我們可以多次使用同樣的資...
前端面試總結(1) JS篇
因為各種原因,今年過年來就提離職了,又要開始面試了,心裡還是比較慌的,面試了兩三周的樣子,總共面試了10家左右大大小小的公司,中途拿到了幾個offer,但是因為不太滿意拒絕了,拒絕之後壓力更大了啊o o。不過在三月初拿到了hin滿意的offer!在這裡總結下我的面試經驗,希望能幫助到正在找工作的你們...
演算法系列1 js陣列排序
請把兩個陣列 a1 a2 b1 b2 c1 c2 d1 d2 和 a b c d 合併為 a1 a2 a b1 b2 b c1 c2 c d1 d2 d 自己研究的解法 var a a1 a2 b1 b2 c1 c2 d1 d2 var b a b c d for var i 0 i b.lengt...