1、Undefined类型 声明后未赋值的变量,或者未声明的变量,typeof的值都是Undefined。区别在于,未声明的变量在调用时会报错。 有鉴于此,变量声明之初初始化会十分有用。...它是用于表示一个本来要返回数值的操作数未返回数值的情况。例如,任何数值除以0都会返回NaN。...对于对象,该函数会自动调用对象的 valueof() 方法进行测试,如果不能,则继续调用对象的 toString() ,进行测试。 1 对象的字符串表示,该字符串与执行环境的地区相对应; ⑥ toString() :返回对象的字符串表示; ⑦ valueOf() :返回对象的字符串、数值或布尔值表示。...通常与 toString() 方法的返回值一致。 ---- 本文内容包含学习过程中的认识和实际应用时的经验,会不断补充更新。最新更新时间(2018-02-01 16:43:26)。
var message; message // undefined 注意:未初始化的变量和未赋值的变量 typeof之后都是undefined,所以为了更好的判断undefined的来源到底是未赋值还是未初始化...如果出现这两个值,那么该值就不能在参与之后的运算了。 12.3 NaN js 中的非数值,是一个特殊的值。主要是为了防止抛出错误,用来表示一个本来返回数值的操作数未返回数值的情况。...如果为空 则 '' => 0 如果包含除了上述格式 则 '' => NaN 如果是对象,则调用对象的 valueOf()方法,在按照之前的规则转换返回值..., 如果转换对象是NaN,则调用对象的 toString() 方法,在按照之前的规则返回字符串 值。...: 从第一个字符开始解析每个字符,知道遇到第一个无效的浮点数字字符为止 也就是说字符串中第一个小数点是有效的,第二个小数点就无效的了。
遇到的问题Uncaught Error: Invalid Object: LngLat(NaN, NaN)按照官网给的示例在本地运行,结果控制台报了个错,地图没有加载出来。...this.initAMap(addressjson["coordinate"].split(",")); });}, initAMap(lnglat) { var $this=...){ $this.addMaker(lnglat) } }) .catch((e) => { console.log...(e); }); },addMakre(lnglat){var marker = new AMap.Marker({ position: new AMap.LngLat...(lnglat[0],lnglat[1]), offset: new AMap.Pixel(-10, -10), icon: 'https://vdata.amap.com/
1 / 0 // Infinity isFinite(Number.MAX_VALUE + Number.MAX_VALUE) // false (3) NaN (Not a Number) NaN 用来表示本来要返回数值的操作数未返回数值的情况...NaN 的设计有两个特点: 1.任何涉及 NaN 的操作都返回 NaN 2.NaN与任何值都不相等,包括 NaN 本身 0/0 // NaN NaN/10 // NaN NaN == NaN // false...6.如果是对象,调用对象的 valueOf() 方法,然后按照前面的转换规则转换,如果转换值为 NaN,则调用对象的 toString() 方法。...RegExp() //object 无效 对于基本类型,除 null 以外,均可以返回正确的结果。...: null 和 undefined 是无效对象,因此没有 constructor 存在。
几种常见的对象类型: 数值:number 相当于java中所有数值类型的综合 var x=18; var y = 18.5; 字符串:string 可以用单引号或双引号赋值 var s = “...返回值类型 方法名(参数列表){方法体} js : function 方法名(参数列表){方法体} 如何声明常见的四种方法: 无参无返回值 无参有返回值 有参有返回值 有参无返回值 js中有三种声明方法的格式...通过元素的id 获取元素对象 var d = document.getElementById(“d1”); 获取和修改元素的文本内容 获取: d.innerText; 修改: d.innerText...="abc"; ###NaN Not a Number: 不是一个数. isNaN(x) 判断x是否是NaN 返回值true代表是NaN(不是数) 返回值false代表不是NaN(是数...("d1"); var i = document.getElementById("i1"); if(isNaN(i.value)){/* 是NaN不是数 */ d.innerText
1.1 Undefined 值:undefined 出现场景: - 已声明未赋值的变量 var obj; - 获取对象不存在的属性 var obj = {x: 0}; obj.y; - 无返回值函数的执行结果... document.getElementById('not-exist-element') 1.3 Boolean 值:true false 出现场景: - 条件语句导致的系统执行的隐式类型转换 if(...隐式转换){} if(document.getElementById('not-exist-element')){ // }else{ //执行这里的代码 } 上面的if(document.getElementById...对象属性: Math JSON NaN 非数字值:表示错误或无意义的运算结果,NaN 参与运算仍会返回 NaA,且 NaN 不等于任何值,包括它本身。...可以使用isNaN() 判断运算结果的类型是否为 NaN。
:变量声明了未初始化赋予的值;null:尚未存在的对象;null == undefined 3....当声明的变量未初始化时,该变量将被赋予默认值 undefined,即 undefined 类型的字面量 var oTemp; alert(oTemp == undefined); //true alert...String 类型原始值转换成数字,其他类型调用返回 NaN parseInt() 首先查看位置 0 处的字符,如果不是有效数字返回 NaN,如果是有效数字,继续向后查看直到发现非有效数字的字符为止...var iNum = parseInt("56.9"); //返回 56,对整数来说,小数点是无效字符 var iNum = parseInt("red"); //返回 NaN var iNum...ValueOf() 返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。
对于未初始化的变量执行 typeof 操作会返回 undefined,对未声明的变量执行 typeof 操作也会返回 undefined。...false isNaN('123abc'); //true isNaN 函数也适用于对象,基于对象调用 isNaN 时,会首先调用对象的 valueof() 方法,判断返回值是否可以转换为数值,如果不能...,再调用对象的 toString() 方法,再测试返回值。...,则将其转换为相同大小的十进制整数值 如果是空字符串,则转换为 0 如果字符串包含除上述之外的字符串,则转换为 NaN 如果是对象,则调用 valueof() 方法,依次按上述规则转换,如果结果为 NaN...parseInt('AF', 16); //175 与 parseInt 类似,parseFloat 函数,不同之处在于,他会解析到遇见一个无效的浮点数字符为止,即字符串中的第一个小数点是有效的,而第二个就无效了
Undefined类型:已经声明而未赋值的变量的值为”undefined”[实际上未声明的变量用typeof检测也会返回undefined] 2....Null类型:表示空的对象指针,相当于对象占位符,typeof返回object。如果返回为对象,却找不到这个对象时,通常会返回null 3....NaN不能用于计算alert(NaN == NaN) //返回false 可用方法:isNaN(),判断是否为”不是数字”,不是数字则返回true,是数字则返回false。 5....,例如: var i; “boolean” 表示这个值是布尔值 “string” 表示这个值是字符串 “number” 表示这个值是数字 “object” 表示这个值是对象或null,可理解为null是对象的占位符...(“test”), “test”); removeClass(document.getElementById(“test”), “test”) if(hasClass(document.getElementById
NaN是(not a number)是一个特殊的数值,表示非数字。 任何涉及NaN的操作,都会返回NaN。 NaN与任何值都不相等,包括NaN本身。...parseInt()转换空字符串返回NaN。 parseInt()这个函数提供第二个参数,转换时使用的基数。 parseFloat()从第一个字符开始解析每个字符,直至遇见一个无效的浮点数字符为止。...(add(2,3)); 函数会在执行完return语句之后停止并立即退出,return语句也可以不带有任何返回值,用于提前停止函数执行又不需要返回值的情况。...getMonth()返回日期中的月份,返回值为0-11。 getDate()返回月份中的天数。 getDay()返回星期,返回值为0-6。 getHours()返回小时。...history对象保存了用户在浏览器中访问页面的历史记录 history.back()回到历史记录的上一步 示例: varbtn =document.getElementById("btn");//
如果第一个非空字符不是数字或者是正负号则返回NaN。 如果第一个是数字字符一直解析到一个非数字字符。 字符串中第一个小数点是有效的第二个小数点是无效的。 只解析10进制,不接受第二个参数。...console.log(Number.parseFloat("0xF")); // 0 Number() Number()构造函数会返回一个字面量值,而使用new Number()则会返回一个数字对象...除以上格式返回NaN。 如果是对象,则调用对象的valueOf,按照前面的规则返回值,如果返回NaN,再调用toString(),按照前面的规则返回值。...在JavaScript内部,很多时候数值都是以64位浮点数的形式储存,但是做位运算的时候,是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数。...,与其它的解析方式不同,如果是一个NaN值,那么返回的也是NaN,通常使用+操作符,因为这个方式不容易混淆。
会把重复的都去除,但是不会发生类型转换,Set内部判断两个值类似===运算符,主要的区别就是NaN等于自身,三等的NaN会不等于自身。...var arr = new Set([NaN, NaN]); console.log(arr);//NaN console.log(NaN === NaN);//false Set的属性和方法: Add...console.log(arr.has(2));//true Clear(),清除所有元素,无返回值: arr.clear(); console.log(arr);//{} Size,返回元素总数: console.log...ES6提供了Map数据结构本质上还是键值对的集合,但是传统对象只能是字符串做键名,比如: var el = document.getElementById('te'); var obj = {}; obj...它的键名所引用的对象都是弱引用,即垃圾回收机制不将该引用考虑在内。因此,只要所引用的对象的其他引用都被清除,垃圾回收机制就会释放该对象所占用的内存。
同步代码的测试比较简单,直接判断函数的返回值是否符合预期就行了,而异步的函数,就需要测试框架支持回调、promise或其他的方式来判断测试结果的正确性了。...mocha可以良好的支持javascript异步的单元测试。 mocha会串行地执行我们编写的测试用例,可以在将未捕获异常指向对应用例的同时,保证输出灵活准确的测试结果报告。...Number:NaN的含义:not a Number或者非数值。任何涉及NaN的操作都将返回NaN;NaN与任何数值都不相等包括其自身。Object:Object是一组数据或功能的集合。...数组元素是对象。函数是对象。可以在一个数组中包含对象元素、函数、数组。2.7JavaScript对DOM的操作获取节点:document.getElementById(元素ID)通过元素ID获取节点。...Window对象中定位节点window.document.getElementById("header");Window对象对节点赋值window.document.getElementById("txtOperationDay
null值表示通常有意地指向不存在或无效的对象或地址的引用,从逻辑角度看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回“object”的原因。...instanceof 运算符 instanceof是判断指定对象是否为某个构造函数的实例,返回值是true或false。...undefined instanceof Object // false null instanceof Object // false 用法上的区别: typeof 对数组 [] 和对象 {} 的返回值都是...Number("123blue") // NaN Number(message) // NaN,变量message未声明 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值...返回值只有两种可能,不是一个十进制整数,就是NaN。
作者|Web前端精髓 链接 | http://blog.csdn.net/wu_xianqiang NaN ,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况...但在 ECMAScript 中,任何数值除以 0会返回 NaN ,因此不会影响其他代码的执行。 NaN 本身有两个非同寻常的特点。...首先,任何涉及 NaN 的操作(例如 NaN /10)都会返回 NaN ,这个特点在多步计算中有可能导致问题。其次, NaN 与任何值都不相等,包括 NaN 本身。...尽管有点儿不可思议,但 isNaN() 确实也适用于对象。在基于对象调用 isNaN() 函数时,会首先调用对象的 valueOf() 方法,然后确定该方法返回的值是否可以转换为数值。...如果不能,则基于这个返回值再调用 toString() 方法,再测试返回值。而这个过程也是ECMAScript中内置函数和操作符的一般执行流程。 扫码下方二维码, 随时关注更多前端干货文章!
const data = {}; const element = document.getElementById('myDiv'); data[element] = 'metadata'; data...== function () {} 将 NaN 作为 Map 的键 NaN 也可以作为Map对象的键。虽然 NaN 和任何值甚至和自己都不相等(NaN !...返回值:如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false。...返回值:undefined forEach 仅仅是对 Map 对象中的每一个元素执行一遍 callback 函数,然后直接返回 undefined。...返回值:返回一个 Map 对象中与指定键相关联的值,如果找不到这个键则返回 undefined。
在使用var声明变量但是未对其进行初始化的时候,这个变量的值就是undefined。...令人困惑的是,对未初始化的变量执行typeof操作,会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值。...(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回值时,默认返回undefined。...这个数值用来表示一个本来要返回数值的操作数未返回数值的情况。 NaN的特点:第一、任何涉及NaN的操作都会返回NaN。...NaN; (5)对象:方法和isNaN()判断对象的方法基本相同。
,在JS中除了那5个基本数据类型以外,其他的一切皆对象。...,对象类型中的一个分支,没有此对象的时候会显示null....//alert(document.getElementById('notExistElement')); --->显示为null,找不到此对象 //undefined类型...== NaN; // false ---> NaN 注意:这是JS中一个特殊的表示,NaN表示不等于任何值.这个数值表示本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。...0 NaN // Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN String: String(1234); // "1234" String(
这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。... ○ 如果字符串是空的,则将其转换为0 ○ 如果字符串中包含除了上述格式之外的字符,则将其转换为NaN ● 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值...如果转换的结果是NaN,则调用对象的toString()方法,然后再依次按照前面的规则转换返回的字符串值。...而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。...通常与toString()方法的返回值相同。
在这篇文章中,我们对 Java 中的 NaN 进行一些简单的描述和说明和在那些操作的过程中可以尝试这个值,和可以如何去避免。 什么是 NaN NaN 通常表示一个无效的操作结果。 ...) 的返回值。...和 在 float 中一个常量 Not-a-Number (NaN) 定义了这个值,这个值等于 Float.intBitsToFloat(0x7fc00000) 的返回值。...NaN 在绝大部分情况下都不是一个有效的输入参数,因此在 Java 的方法中,我需要对输入的参数进行比较,以确保输入的参数中的值不是 NaN,然后我们能够对输入参数进行正确的处理。...= NaN 2 / NaN = NaN 最后,我们知道我们不能够给 double 或者 float 指派为 null 对象类型。
领取专属 10元无门槛券
手把手带您无忧上云