美文网首页
JS数据类型及运算符相关

JS数据类型及运算符相关

作者: 肥鱼666 | 来源:发表于2017-11-18 23:30 被阅读0次

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

JS定义了6种数据类型:

  • 数值类型
  • 字符串类型
  • 布尔值
  • undefined
  • null
  • Object
    原始类型:数值,字符串,布尔值。它们是最基本的数据类型不可在细分了。
    复杂类型:对象。对象是由多个原始类型的值组成的集合,可以看做是存放各种值的容器。(ps对象细分的话又可以分为: 对象,函数,正则表达式和数组)
    null和undefined是特殊类型的值!!

简单细说下null与undefined:
null 与 undefined的含义与用法都差不多,都是表示"没有"。但是它们二者是有区别的!
null 表示一个值被定义了,定义为"空值"。
undefined 表示根本不存在定义!!
借用网上大神的一段证明:设置一个值为null是合理的,比如objA.value1 = null;但是如果设置objA.value1 = undefined就不合理了。

原始类型与复杂类型的区别:

  1. 基本类型变量存的是值,复杂类型的变量存的是内存地址
  2. 基本类型在赋值的时候拷贝值,复杂类型在赋值的时候只拷贝地址,不拷贝值。

typeof和instanceof的作用和区别?

typeof 是一元运算符,用来获取运算数的数据类型。返回的值有undefined,boolean,number,string,null,object.而对象,数组和null遇到typeof会返回object。当要判断某个对象是否是数组或者某个变量是否是对象的实例时就要使用instanceof, instanceof用来判断某个变量的值是否是某个对象的实例,返回值有true和false.

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

console.log(typeof x === "number")               
console.log(typeof x === "string")          
console.log(typeof x === "boolean")         
console.log(typeof x === "function")
判断变量

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

NaN是Not a Number,表示非数字,与任何值都不相等,包括它自身。

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

  • Number()
  • parseInt()
  • parseFloat()

==与===有什么区别

==是值相等,js会在一些情况下进行隐式的类型转换再进行比较。
===是严格相等(包括值和类型)

break与continue有什么区别

break - 跳出整个循环;如果是多层f循环,跳出当前for循环,而不是整个循环。
continue - 跳出本次循环,执行下个循环。

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

undefined 不能被重写。但是在局部作用域中,还是可以被重写的。
所以undefined现常用于全局环境
void 运算符通常只用于获取 undefined 的原始值,一般使用 void(0)(等同于 void 0)。在上述情况中,也可以使用全局变量undefined 来代替(假定其仍是默认值)。
而 void 可以给任何给定的表达式求值,并返回 undefined,并且 void 不可被重写,因此void 0是在局部作用域中替代undefined的最佳选择

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

console.log(1+1);    // 2   因为都是数字所以会做加法运算
console.log("2"+"4");  // 24 因为都是字符串所以会做字符串拼接
console.log(2+"4");  // 24 在有一个参数是字符串的情况下会把另外一个参数转换为字符串做字符串拼接
console.log(+"4"); // 4 在只有一个字符串参数的时候会尝试将其转换为数字

以下代码输出的结果是?

var a = 1;  
a+++a;  
typeof a+2;

因为++的权重大于+,所以a+++是(a++)+a,而a++=1之后a=2, 1+2=3,所以a+++a=3, typeof的权重又比+ 高,所以(typeof a)+2,故最后得出"number2"。

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

 var a = 1;
 var b = 3;
 console.log( a+++b );

最后得出4,因为++的权重比+高,故得(a++)+b, a++=1, 1+3=4。

遍历数组,把数组里的打印数组每一项的平方

var arr = [3,4,5];
for (let 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]);
}

相关文章

  • 原生js

    原生JS学习笔记1——基本数据类型和运算符 js的背景知识介绍,js的引入方式,js的变量及运算符 原生JS学习笔...

  • JavaScript 01 (JS引入/变量/数据类型/类型转换

    JS的引入及调试,常量,字面量,变量,JS中的数据类型,JS的运算符,JS的运算符之隐式类型转换,强制类型转换,M...

  • JS数据类型及运算符相关

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

  • js运算符

    js基础语法:运算符,判断语句,数据类型,js对象 一、运算符 赋值运算符 =算数运算符 +-*/% ++...

  • JavaScript基础总结

    ✍目录总览:(JS概念与组成、JS格式规范、JS基本语法【输入、输出、变量、数据类型、数据类型转换、运算符、流程控...

  • JS深入浅出

    数据类型 表达式和运算符 语句 js对象 属性

  • js问答题

    index js问答题 __小胖子 1.JS的数据类型有哪些?typeof运算符的执行结果都有哪些数据类型? (第...

  • 2018-11-11

    js部分 js运算符 “+” 1.用作数字运算符,字符串链接。运算符之间自左向右运算。21.任何数据类型加字符串都...

  • 2022前端面试题汇总(附答案)更新中

    JS相关 1.JS中的数据类型 (1)数据类型分为基本数据类型和引用数据类型基本数据类型:number、null、...

  • JS数据类型及运算符

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

网友评论

      本文标题:JS数据类型及运算符相关

      本文链接:https://www.haomeiwen.com/subject/zhbdvxtx.html