资讯专栏INFORMATION COLUMN

前端面试-js之number数据类型特殊-NaN

jk_v1 / 3158人阅读

摘要:高级编程五种基本数据类型,,外加一个复杂类型包括本篇主要解析下即的值,对的表现包括的有常见的强制转换就是但它是的。追加数组去重问题进一步深入通用数组去重方法,简洁而深入利用字符串达到去重目的

js高级编程:js五种基本数据类型,number,string,boolean,undefined,null,外加一个复杂类型object(包括array,obj,function)

本篇主要解析下number

number value

number value即 number type的值,对number的表现

number type

number type 包括的number value有: NaN,+infinity,-infinity

number object

常见的强制转换 Number() 就是number object

NaN

not a number,但它是number type的。

NaN 的检测 isNaN

检测 NaN, isNaN会隐式地将非number type 值转换为number 再判断,所以使用该方法时最好组装一个,见下>

Number.isNaN = function (value) {
    return typeof value === "number" && isNaN(value);//es6下面已经这样实现
}
NaN 的检测 Object.is()投机取巧检测

Object.is(value1,value2)

both null,
both undefined,
both true or false,
both string && the same length with the same characters
both number and 
                both +0,
                both -0,
                both NaN,
                both the same value which is not NaN or zero
both the same object
   

Object.is(NaN,NaN)

哪些情况下会得到NaN

浮点运算

  parseInt(string),parseFloat(string),Math.floor(string)等等浮点运算会返回NaN

infinity的运算

  Infinity - Infinity, Infinity + Infinity, 1 * Infinity
  
  Infinity是怎么得到的,常见的0作为除数时会产生Infinity
  
  

应用-数组去重(包含NaN的数组)

对数组[1,1,"1",NaN,NaN,null,null,undefined,undefined]去重

//function _isNaN (value) {
//    return typeof value === "number" && isNaN(value);
//}
function unique (arr) {
    var type = "",
        key = "",
        res = [],
        hash = {};
    for(var i= 0,len=arr.length;i
总结一下

今天面了一个老东家滴滴实习生,涉及到此基础,发现应届生还是要重视基础,在此整理一下,仅供参考。

追加---数组去重问题进一步深入

通用数组去重方法,简洁而深入

利用JSON字符串达到去重目的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88686.html

相关文章

  • 前端碎碎念 [] + {} 和 {} + []一样吗?

    摘要:前端碎碎念系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到。当两个操作数都是数值时,执行常规的数值加法计算。关键还是要加深对中对数值转换的理解,以不变应万变。 『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到。 我会查阅一些资料并可能加上自己的理解,来记录这些问题...

    Soarkey 评论0 收藏0
  • 前端面试】变量和类型计算

    摘要:题目使用能得到哪些类型和的选择中有哪些内置函数变量按存储方式分为哪些类型,并描述其特点如何理解知识点值类型和引用类型值类型引用类型对象,数组,函数值类型直接把值存储在堆中,把赋值给在内存中是又给开辟了一块新的空间,存储了同样的值。 1.题目 1.JS使用typeof能得到哪些类型 === 和 == 的选择 JS中有哪些内置函数 JS变量按存储方式分为哪些类型,并描述其特点 如何理解J...

    DoINsiSt 评论0 收藏0
  • js面试题(上)

    https://segmentfault.com/a/11... 原型 / 构造函数 / 实例 对原型的理解 我们知道在es6之前,js没有类和继承的概念,js是通过原型来实现继承的。在js中一个构造函数默认自带有一个prototype属性, 这个的属性值是一个对象,同时这个prototype对象自带有一个constructor属性,这个属性指向这个构造函数,同时每一个实例 都有一个__proto...

    leap_frog 评论0 收藏0
  • 经常被面试官问到的JavaScript数据类型知识你真的懂吗?

    摘要:中的强制转换规则面试官中强制类型转换是一个非常易出现的点,知道强制转换时候的规则吗注规则最好配合下面什么时候发生转换使用这些规则看效果更佳。调用方法用来把对象转换成原始类型的值数值字符串和布尔值。 前言 showImg(https://segmentfault.com/img/bVbu4Fb?w=940&h=400);之前面试了几个开发者,他们确实做过不少项目,能力也是不错的,但是发现...

    codergarden 评论0 收藏0
  • JS. ES5重点笔记】数据类型

    摘要:是最特殊的类型,表示没有意义的数,例如。十六进制数八进制数十进制数十六进制数对于部分情况,和存在分歧。例如,表示希腊字符关于字符串的转换,其实核心就是函数,如果是数字型,还可以添加参数,使之变为二进制八进制十进制十六进制数。 虽然目前已经算是ES6的时代,然是ES5的尾巴仍在众多框架中出现,JS我虽然通过视频等方式学习,曾经做过项目,但是仍对部分细节和原理不了解,通过阅读这本书,希望能...

    Yu_Huang 评论0 收藏0

发表评论

0条评论

jk_v1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<