JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?
定義了6種數(shù)據(jù)類型董瞻,數(shù)字number,對(duì)象object,undefined未定義诚镰,布爾值boolean揪惦,字符串string遍搞,null空
數(shù)字number,布爾值boolean器腋,字符串string原始類型
對(duì)象object是復(fù)雜類型
至于undefined和null溪猿,一般將它們看成兩個(gè)特殊值。
基本類型變量存的是值纫塌,復(fù)雜類型的變量存的是內(nèi)存地址诊县。
基本類型在賦值的時(shí)候拷貝值,復(fù)雜類型在賦值的時(shí)候只拷貝地址措左,不拷貝值依痊。
按順序使用用內(nèi),每個(gè)數(shù)據(jù)占據(jù)的位數(shù)是固定的(基本類型),這種內(nèi)存叫做「棧內(nèi)存」胸嘁;另一個(gè)瓶摆,就是專門用來存儲(chǔ)位數(shù)不固定的數(shù)據(jù)(復(fù)雜類型),存的時(shí)候不一樣按順序一個(gè)一個(gè)存性宏,這種內(nèi)存叫做「堆內(nèi)存」群井。
typeof和instanceof的作用和區(qū)別?
.typeof和instanceof的作用和區(qū)別?
typeof 是用于返回一個(gè)數(shù)據(jù)其原始的數(shù)據(jù)類型,對(duì)于常見的幾大數(shù)據(jù)類型都可以用typeof 數(shù)據(jù)類型的方式進(jìn)行判斷.
答:instance 是用于判斷某個(gè)對(duì)象是不是構(gòu)造函數(shù)的一個(gè)實(shí)例毫胜,舉例來說就是一個(gè)新聲明的變量是不是調(diào)用了構(gòu)造函數(shù)的內(nèi)置屬性或方法.
如何判斷一個(gè)變量是否是數(shù)字书斜、字符串、布爾酵使、函數(shù)
使用typeof來判斷荐吉,如下:
1.typeof 123 // "number"
2.typeof '123' // "string"
3.typeof false // "boolean"
4.function f() {}
typeof f // "function"
NaN是什么? 有什么特別之處?
- NaN( Not a number), 不是數(shù)字
- 任何NaN的值進(jìn)行操作都會(huì)返回一個(gè)NaN,
- NaN與任何值都不相等
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
借助函數(shù)即可完成Number() / parseInt() / parseFloat()
==與===有什么區(qū)別
== 相等
=== 嚴(yán)格相等
兩等號(hào)判等會(huì)在比較時(shí)進(jìn)行類型轉(zhuǎn)換;三等號(hào)判等不會(huì)進(jìn)行類型轉(zhuǎn)換(如果類型不同會(huì)直接返回 false )
break與continue有什么區(qū)別
break與continue有什么區(qū)別break跳出循環(huán)體口渔,continue跳出單次循環(huán)
void 0 和 undefined在使用場(chǎng)景上有什么區(qū)別
前者在函數(shù)中样屠,作為返回值的一種判斷
undefined可以在局部作用域中被覆寫,而void運(yùn)算返回之都是undefined
. 以下代碼的輸出結(jié)果是?
console.log(1+1); //2 number 2
console.log("2"+"4"); //24 string+string “2”“4”
console.log(2+"4"); //24 number+string 2“4”
console.log(+"4");//4 string4
. 以下代碼的輸出結(jié)果是?
var a = 1;
a+++a; //3 '++'的優(yōu)先級(jí)比'+'高,相當(dāng)于2+1=3
typeof a+2;//"number2" 搓劫,因?yàn)?typeof的優(yōu)先級(jí)比+高,相當(dāng)于 (typeof a)+2
以下代碼的輸出結(jié)果是? 為什么
var a = 1;
var b = 3;
console.log( a+++b );//4 相當(dāng)于(a++)+b,a先加再自增枪向。
遍歷數(shù)組勤揩,把數(shù)組里的打印數(shù)組每一項(xiàng)的平方
var arr = [3,4,5]
//for(i=0;i<arr.length;i++){console.log(arr[i]*arr[i])}
遍歷 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
};
for(var i in obj)
console.log(obj[i]);