JavaScript的数据类型运算符以及流程控制语句

JavaScript的数据类型

  1. Number类型
  2. String类型
  3. Boolean类型
  4. Object类型
    • Array数组
    • Function函数
    • Regexp正则表达式
  5. Null类型
  6. Undefined类型
  • 原始类型(Number、String、Boolean)
    最基础的数据类型,不可再分割
  • 复杂类型(Object)
    一个对象里会存在多种基本数据类型,是一个容器
  • 特殊值 (Undefined、Null)

typeof与instanceof的作用及区别

  • typeof
    作为检测变量数据类型的一种操作符,可以返回一个值的数据类型,如:number、string、boolean、function等。我们可以利用其这一特性来检测一个变量有没有被声明,但是不足的是对于复杂类型的数据类型只会返回object,所以为了区分复杂类型中的数据类型,我们可以使用instanceof
  • instanceof
    由于上述的原因,我们可以通过instanceof检测某个对象是否是一种对象的实例。

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

自然是使用typeof啦,如:
var message = "hello world";
alert (typeof message); //"string"

NaN

NaN(Not a Number)是一个特殊的数值,这个数值用来表示一个本要返回数值的操作数未返回数值的情况。它有两个非同寻常的特点,

  • 任何涉及NaN的操作都会返回NaN;
  • NaN与任何值都不相等,包括它自身;

数值的转换

这三个函数可以实现非数值转换数值(Number() 、parseInt() 、parseFloat())

  • Number() 适用于所有数据类型
  • parseInt()和parseFloat()适用于把字符串转换成数值

全等和不全等

二者的区别除了在比较之前不装换操作数之外,没有其他区别,全等===在两个操作数未转换就相等的情况下返回true,不全等==在两个操作数装换后相等则返回true。由于相等和不相等操作符存在类型转换的问题,为了保持代码中数据类型的完整性,我们建议使用全等和不全等。

break和continue的区别

  • break 用于强制退出循环体,执行循环后的语句
  • continue 则是退出当次循环,执行下次循环

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

undefined 可以在局部作用域中被覆写void 运算返回值始终都是 undefine

练习

  • 以下代码的输出结果及原因


    1
2 //简单的数字相加
"24" //字符串拼接
"24" //数字转换为字符串后拼接
4 //字符串变为数字 
  • 以下代码输出结果
var a = 1; 
a+++a; //a++=1,a+++a=3;
typeof a+2; //由于优先级的原因typeof a="number",所以结果是"number2"
  • 以下代码的输出结果及原因
var a = 1;
var b = 3;
console.log( a+++b ); //4,a++优先级高的原因
  • 遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5]
for(i=0; i
  • 遍历 JSON, 打印里面的值
var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
for(i in obj){
   console.log(obj[a]);
}
  • 以下代码输出结果是? 为什么
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)     //"number2",根据优先级得到"number2"||c>0,所以为“number2”

var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)    // bb, undefined     true&&bb,所以为console.log(console.log('bb')),所以是undefined.

var data2 = d = 0 || console.log('haha')
console.log(data2)    // haha,undefined,0||console.log('haha')得到haha,然后再赋值给d,再赋值给data2,于是console.log(data2)就是console.log(console.log('haha')),为undefined
 
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)    //2,  原式相当于 var x = true + true;

你可能感兴趣的:(JavaScript的数据类型运算符以及流程控制语句)