資料型別
基本資料型別:number,string,boolean,null,undefined;
複雜資料型別(引用型別):object;
number:
型別: 整數,浮點數;
浮點數特性:
該數值後面必須有小數,不然轉化為整數。
極大極小浮點數-> e表示法;
計算時容易丟失精度: var num = 0k.1 + 0.2;console.log(num) => 0.30000000000000004;
tofixed() 精確到小數點幾位;
nan:
任何涉及nan的操作就會返回nan;
nan與任何值都不相等,包括其本身;
isnan函式涉及型別轉換:相當於number() isnan('2') -> false;
數值轉換:
number -> 可以將string型別轉換成number型別;
parseint -> 可以將string型別轉換成number整數型別 + 將(數字+非數字)的string(數字必須在前)中的數字提取出來;
parsefloat->可以將string型別轉換成number浮點數型別 + 將(數字+非數字)的string(數字必須在前)中的數字提取出來;
string
單引號與雙引號 -> 拼接字串時html屬性要使用雙引號與單引號區分開;
字串有length屬性;
型別轉換:
tostring():
幾乎每個值都有tostring()方法;
null,undefined沒有undefined;
數值 + ' ' 轉化為string ;
物件的返回值加引號返回字元;
對數值使用時可以加引數 var num = 10; num.tostring(2) -> '1010';
string():
可以對任何值進行轉換,包括null與undefined;
number與string相互轉換:
number -> string
tostring();string();+ ' ' 操作;
string -> number
number();parseint();parsefloat();
數字與字串的相加操作 -> 執行字串的拼接規則;
boolean
只有兩個值:true,false;
型別轉換:
使用boolean()方法;
一些轉換布林值的地方:
if語句 if('sha') ,if(),if({}) 都會轉換成true;
&&、|| 的使用
&&的優先順序更高;
computed && clearinterval(timer);
cur == itarget || (bcomplete = false,elem.style[attr] = cur + speed + 'px')
null,undefined
null與undefined的區別:
null:表示沒有物件,即該出不應該有值;
作為函式的引數,表示該引數不能為物件;
物件原型鏈的終點;
空物件指標;
isnan(null) -> false;
undefined表示缺少值,就是此處該有乙個值,但是沒有定義。
變數宣告了,但是沒賦值 var a; -> undefined;
調換函式的時,應該傳遞的的引數沒有提供 function do() undefined;
沒有返回值的函式;
物件沒有賦值的屬性 var obj = ; console.log(obj.b);
isnan(undefined) -> true;
== 與 === :
== 會進行型別轉換,===不會;
obj.a == null => obj.a === null || obj.a === undefined
object
array,function 都是從object繼承的
array,null的typeof都為object
建立的方式:字面量、函式的返回值、建構函式、oject.create();
hasownproperty() : 判斷屬性是否存在與例項物件中;
不改變陣列的操作:slice,concat,join;
slice,splice
slice(start,end)
前閉後開;支援負數;產生新陣列;
splice(start,length;newitem)
支援負數;改變原陣列;
slice,substring,substr
slice(start,end)
前小後大,前閉後開;支援負數;產生新strging;
substring(a,b)
較小為start,較大為end;不支援負數,直接轉0;
substr(start,length)
支援負數
相同點:都不會改變原字串;
類陣列轉換成陣列:
array.prototype.slice.call(arguments);
string與array轉換:
join:array to string
split:string to array
用法:function geturl(str);
var searcharr = search.split('&');
for(var i =0;i拷貝:
slice,concat 陣列淺複製;
object.assign() 物件淺複製;
json.parse(json.stringify) 物件淺複製;
json.stringify(..) 在物件中遇到 undefined、function 和 symbol 時會自動將其忽略,在陣列中則會返回 null(以保證單元位置不變)。
function deepclone(obj)
}else
return o;
}相關知識點:
js按照儲存型別分為哪幾類,描述其特點。
值型別:number,string,boolean,null,undefined;
引用型別:array,function,object;
特點:值型別不會因為相互引用而互相干擾;
引用型別會因為相互引用而相互干擾;
判斷資料型別:
js中使用typeof能得到那些型別? -> number,string,boolean,null,undefined,object;
如何準確判斷乙個變數是陣列型別:
instanceof array
object.prototype.tostring().call().slice(8,-1).tolowercase()
es6 isarray
描述new 物件的過程
建立乙個新物件;
this指向這個新物件;
執行函式;
返回this;
js中有哪些內建物件:
number,string,boolean,object,array,function,date,error,regexp;
陣列去重:
不開闢新的記憶體空間去重:
array.prototype.unique = function()
retrun this;
}array.prototype.unique = function()
return this;
}開闢新空間
array.prototype.unique = function()
return arr;
}array.prototype.unique = function()
return arr;
}array.prototype.unique = function()
return arr;
}filter
arr.filter(function(item,index,array))
js資料型別
一.原始資料型別 1.typeof 運算子。var a alert typeof a 輸出結果為 undefined 2.undefined 未定義 型別 當變數未定義時,該變數值被預設為undefined 如 var a alert typeof a 輸出結果為 undefined 注意值unde...
js資料型別
js 基本資料型別 undefined null boolean number string js 操作符 typeof檢測給定變數的資料型別。返回值表示的型別 undefined 值未定義。boolean 值為布林型別。string 值為字串。number 值為數字。object 值為物件或nul...
js資料型別
var num 1,boo true,aa null,bb,str mary arr 1,2,4,8 obj arrnew new array 1,2,3 strnew new string 1,2,3 用 typeof 檢測變數的型別 console.log number typeof num n...