美文网首页
js数据相关简单的问题与理解

js数据相关简单的问题与理解

作者: ClayChan | 来源:发表于2019-10-31 10:19 被阅读0次

Q:
js数据类型?
A:
原始类型:number、string、boolean、特殊类型(null&undefined)

// 不区分整型和浮点数值
var a = 1;    // number类型
var b = 1.1;    // number类型

// ""和''均可构成字符串
var c = "hello";    // 双引号内文本构成字符串
var d = 'world';    // 单引号内文本构成字符串

// true和false为布尔值
var e = true;
var f = false;

//  null和undefined均为特殊类型
var g = null;
var h = undefined;

对象类型:array、function&object

Q:
==和===的区别?
A:
原始类型值的比较是值的比较:
它们的值相等时它们就相等(==);
它们的值和类型都相等时它们就恒等(===)。

console.log( false == 0 )    //true
console.log( false === 0 )    //false

部分值会在布尔值转换的时候被转换为false,但是并不意味着它们和false相等

undefined
null
0
-0
NaN
""    // 空字符串

console.log( undefined == true )    //false
console.log( undefined == false )    //false

console.log( undefined == null )    //true
console.log( undefined === null )    //false

console.log( null ==  false )    //false
console.log( null == true )    //false

console.log( "" == false )    //true
console.log( "" == true )    //false

console.log( 0 == false )    //true
console.log( 0 == true )    //false

console.log( -0 == false )    //true
console.log( -0 == true )    //false

Q:
null和undefined的区别?
A:
null:正常的或在意料之中的值的空缺
undefined:出乎意料的或类似错误的值的空缺

Q:
Infinity和NaN
A:
Infinity:表示无限大,超过JS的number所能够表示的最大值。
NaN:表示not a number,无法计算的结果。

//    NaN与任何值都不相等,包括它自身
console.log( NaN == NaN )    //false

//    识别NaN的方法
console.log( isNaN(NaN) )    //true

Q:
为什么两个空数组不相等?

var a = [], b = [];
console.log( a == b );    //false

A:
对象类型的比较和原始类型不同(原始类型见上Q),对象的比较并非值的比较,而是引用的比较:
对象:包含同样的属性及相同的值的两个对象,它们也是不相等的
数组:各个索引元素完全相等的两个数组,它们也是不相等的

var a = { n : 1 }, b = { n : 1 };    //同样属性&相同的值
console.log(a == b);    //false

var c = [], d = [];    //单独的空数组
console.log( c == d );    //false

对象类型一般我们称为引用类型,区别于基本类型,对于对象值的使用我们都是采用了引用的方式--reference,所以只有在引用对象为同一对象时,它们的值才会相等

var a = [];    //定义a来引用一个空的数组
var b = a;    //定义b来引用同一个数组
console.log(a == b);    //true
b[0] = 1;    //调用变量b来修改数组
console.log(a[0]);    //1,因为引用的是同一个数组,所以a也会改变

相关文章

  • js数据相关简单的问题与理解

    Q:js数据类型?A:原始类型:number、string、boolean、特殊类型(null&undefined...

  • 详解Js中的数据类型(一)

    整个Js可以简单理解为二个部分,数据部分,操作运算部分。 Js中数据类型分为:原始的数据类型 (由简单数据类型组成...

  • MVC与MVVM的理解

    MVC简单的理解, 如下图: view:能够实现数据有目的的显示model:用于封装与应用程序的业务逻辑相关的数据...

  • vuex 基础结构

    state.js 与组件、项目、模块相关的底层数据 getters.js 对数据的映射,可以写一些复杂的判断逻辑 ...

  • js的浅拷贝与深拷贝

    js的浅拷贝与深拷贝 涉及知识点: js中的数据类型(基本类型,引用类型) js中的存储数据的堆栈相关知识点; 下...

  • 我的关于前端一些知识点的理解《二》(如一)

    js函数执行的一些问题 js中的执行环境定义了变量和函数有权访问的其他数据。 每个执行环境都有一个与之相关的变量对...

  • 代码规范

    根据公司相关内容,简单总结一下前端的代码规范,以后再慢慢更新 js与css规范, 开头要写相关信息 js规范 变量...

  • this指向问题

    要彻底理解JS中的this指向问题,建议多结合一些相关的面试题,理解记忆,不必硬背 关于this问题:只需记住谁调...

  • JS中的数据类型转换&浅谈深与浅拷贝

    本文会介绍将其他的数据类型转换成特定的一种数据类型。另外会简单引申JS中的内存图,深拷贝与浅拷贝等相关知识。 将其...

  • 数据清洗常见问题及处理方法

    数据清洗的相关理解 一、数据需要清理的问题 对各种问题数据进行对应方式的处理,使其得到统一、可用、易用的数据 常出...

网友评论

      本文标题:js数据相关简单的问题与理解

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