数据类型 运算符

1. JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?

  • JavaScript数据类型
    • 数值 number:整数和小数
    • 字符串 string:字符组成的文本
    • 布尔值 boolean:true和false
    • undefined:undefined 表示根本不存在定义
    • null:null 表示一个值被定义了,定义为“空值”
    • 对象 object:各种值组成的集合
    • symbol
  • 原始类型:number, string, boolean
  • 复杂类型:object
    区别:复杂类型是多个原始类型的值的集合,可以看作是一个存放各种原始类型值的容器
    undefined与null的区别

2. typeof和instanceof的作用和区别?

  • typeof 返回 这个变量的数据类型(number、string、boolean
    、function、undefined,数组/对象返回object)
  • instanceof返回true\false
    instanceof只能用来判断对象和函数,不能用来判断字符串和数字等
var b = '123';
alert(b instanceof String);  //false
alert(typeof b);  //string

var c = new String("123");
alert(c instanceof String);  //true
alert(typeof c);  //object

var b = [];
alert(b instanceof Array);  //true

http://blog.csdn.net/u014421556/article/details/52083215

3. 如何判断一个变量是否是数字、字符串、布尔、函数

用typeof ,如

var a="666";
typeof a === string; //true

4. NaN是什么? 有什么特别之处?

表示非数字,属于number类型/
1/0
任何数跟它都不相等,包括它自己。

5. 如何把非数值转化为数值?

使用函数 Number(), parseInt(), parseFloat() 可以将非数值转换为数值。

var a="efd3215.25"
console.log(Number(a)); //NaN
console.log(parseInt(a)); //NaN
console.log(parseFloat(a)); //NaN

var b="846.5dfef"
console.log(Number(b)); //NaN
console.log(parseInt(b)); //846
console.log(parseFloat(b)); //846.5

使用规则参考

6. ==与===有什么区别

===表示全等:操作数必须是同一类型,才进一步比较
==: 如果操作数类型不同,会在转换类型后进行比较

7. break与continue有什么区别

break:表示强制退出循环体,执行循环体后面的语句
continue:表示退出本次循环过程,即循环体中continue后面的语句停止执行,直接进入下次循环

8. void 0 和 undefined在使用场景上有什么区别

ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。(非严格模式下)

undefined =123;
console.log(undefined);  //undefined

(function(){
    var undefined = 123;
    console.log(undefined);  //123
})()

void的返回值都是undefined,
所以用void 0是为了防止undefined被重写而出现判断不准确的情况。

9. 以下代码的输出结果是?为什么?

console.log(1+1);    // 2
console.log("2"+"4");   //24
console.log(2+"4");   // 24
console.log(+"4");  //4
  • 在两个操作数都是数字的时候,会做加法运算
  • 两个参数都是字符串或在有一个参数是字符串的情况下会把另外一个参数转换为字符串做字符串拼接
  • 在参数有对象的情况下会调用其valueOf或toString
  • 在只有一个字符串参数的时候会尝试将其转换为数字
  • 在只有一个数字参数的时候返回其正数值
  1. 以下代码的输出结果是?
var a = 1;  
a+++a;  //(a++)+a ==> 1+2 ==> 3
typeof a+2; //(typeof a)+2 =>"number"+2 => number2
  1. 以下代码的输出结果是? 为什么
 var a = 1;
 var b = 3;
 console.log( a+++b ); // (a++)+b  => 4   
// 先用a的值,a再自加1。 ++的优先级比+高
  1. 遍历数组,把数组里的打印数组每一项的平方
 var arr = [3,4,5]
for(i=0; i<arr.length; i++){
      console.log(arr[i]*arr[i]);
}
  1. 遍历 JSON, 打印里面的值
var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
for(var i in obj ){
       console.log(i+":"+obj[i]);
}
  1. 以下代码输出结果是? 为什么 (选做题目)
    || 、&&返回的是表达式的值
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) 
// (typeof a) + b||c > 0  ==> "number"+ 2("number2"为true,||中短路,val="number2")

var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
/* (d==5) 为true ==>  console.log('bb')输出 bb ,返回值undefined 
==>&&运算, data值为undefined ,输出undefined */


var data2 = d = 0 || console.log('haha')
console.log(data2)
/* ( 0 || console.log('haha')) ==> 0,往后 ==> 输出haha ,返回undefined 
==> data2值为undefined */
 
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
/*   (!"world", !!"from here!!")逗号运算符用于对两个表达式求值,并返回后一个表达式的值,
 !!"from here!!" 为true ==> !!"Hello" 为true 
==> var x = true + true转换为var x = 1 + 1 ==> x为2
当数字和布尔值或布尔值与布尔值进行+、-、*、/操作时,会将布尔值转换为数字,true转换为1,false转换为0。
*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容