以下是javascript类型的注意事项:

  • null:表示尚未存在的对象,注意,尽管尚未存在,也是个对象啊,所以用typeof检测一个null值变量的结果是Object;不过,为了便于写if语句,在js中,"undefined==false", "null=false", 因此,"undefined==null"。
  • 整数:最容易犯的错误就是,忘了070其实是个八进制数,相当于十进制的56;
  • 浮点数:“在进行运算之前,真正存储的是字符串”——这应该是解释执行的本质决定的吧——直接后果是,alert(0.8)这样的语句可以正确输出,而alert(2*0.8)的输出就成了"2.40000000000000003"
  • 数字边界:数字有几个边界值,分别是Number.MAX_VALUE(最大值), Number.MIN_VALUE(最小值), Number.POSITIVE_INFINITY(正无穷), Number.NEGATIVE_INFINITY(负无穷), Infinity(无穷大,-Infinity,这个有点莫名其妙,不知道为啥又搞出一套);特别地,还有一个isFinit(iNumber)函数来判断数字是否为无穷大。
  • NaN:一些需要数字作为参数的函数,当传入的实参无法转换为数字时,往往会返回这个值;关于NaN,最重要的就是要记住NaN!=NaN,因此判断一个变量是否为NaN,一定要使用isNaN(var)函数。
  • 将字符串转换为数字:sVar.parseInt()是最常用的函数,也最容易出错,为了保险起见,最好每次调用的时候,都加上“进制”的参数,比如:a.parseInt(10),就制定了按十进制转换字符串a;Number(sVar)也是一种转换方式,不同的是,它要求整个字符串都得是有效数字,因此Number("4.5.5")将返回NaN;
  • 判断变量类型:一般情况下,可以先用typeof 运算符,如果结果是"object",再用instanceof来判断;奇怪的是,不知道是ECMAScript标准的问题还是IE实现的问题,instanceof不认为原始类型值的变量是对象,而使用constructor属性似乎可以应付所有类型的变量,如下:
 var temp="a string for test";
//下面这句返回"string" http://sosoft.cnblogs.com/
alert( typeof temp);
//下面这句返回"false"
alert(temp instanceof String); //下面这句就回返"true"了
var temp2=new String("another new string");
alert(temp2 instanceof String); //constructor属性是很好的替代品
//下面这句返回"true"
alert(temp.constructor==String);

http://www.cnblogs.com/sosoft/

javascript类型注意事项的更多相关文章

  1. javascript类型与类型检测

    1.javascript类型: 注:包装对象:如"hello".length实际为js为我们隐式创建了一个String临时对象,去调用该对象的length属性,调用过后再将该临时对 ...

  2. 谈谈JavaScript类型检测

      javascript内置的类型检测机制并非完全可靠.比如typeof操作符,并不能准确的判断数据是哪个类型,比如:数组和对象就不能通过typeof来区分. typeof [] ==="o ...

  3. Javascript类型检测

    原地址 http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html 开门见山,我们先来看一下代码: var is = function ...

  4. JavaScript 类型浅解

    对于JavaScript 类型,可简单地概括为:相对于强类型语言来说,它是弱(松散)类型的语言:有基本类型和引用类型,他们是区别是一个有固定空间存在于栈内存中,一个没有固定空间保存在堆内存中并且在栈内 ...

  5. JavaScript类型和语法

    JavaScript类型和语法 一.类型 1.内置类型(null.undefined.boolean.number.string.object.symbol(es6中新增))(除对象之外,其它统称为基 ...

  6. JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

    1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-I ...

  7. JavaScript类型判断instanceof与typeof对比

    经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...

  8. JavaScript –类型之我晕

    每次写博我觉得取上恬当的题目比整篇行文都难,词量有限的情况下突然想到JavaScript拾遗应该会是一个非常文艺而夺目的博文题目,但我并没有急着使用,经验告诉我应该先去搜一下看有没有被用过.果不其然, ...

  9. JavaScript类型判断

    几种方法:typeof,instanceof,Object.prototype.toString,constructor,duck type ES6引入了一种新的原始数据类型Symbol,表示独一无二 ...

随机推荐

  1. JavaScript思维导图—字符串函数

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  2. 用DirectX实现魔方(三)视角变换及缩放(附源码)

    在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...

  3. java 锁2

    并发,其实是多线程才有的场景... java 多线程? 锁? 现在看来,即使已经工作了4.5年,这仍然不是一个简单的问题. 其实java 本身有提供锁的机制. 比如 Object对象的 wait .n ...

  4. 更新日志 - fir.im 新版优化上线

    经过这段时间的用户反馈收集和新版本的功能调研,我们对 fir.im Rio 上传下载.应用管理再次做了调整优化.感谢之前内测用户的反馈与建议.目前 fir.im Rio 新版已正式上线,主要优化有以下 ...

  5. jquery 插件开发

    一.$.extend()  这种方式用来定义一些辅助方法是比较方便的 $.extend({ sayHello:function(name){ console.log('Hello:'+name); } ...

  6. 神马是 NaN,它的类型是神马?怎么测试一个值是否等于 NaN?

    NaN 是 Not a Number 的缩写,JavaScript 的一种特殊数值,其类型是 Number,可以通过 isNaN(param) 来判断一个值是否是 NaN: console.log(i ...

  7. javascript_core_03之数组

    1.数组:连续存储多个数据,一组连续变量的集合: ①创建空数组:var arr=[]:或者var arr=new Array(): ②创建初始化数组:var arr=[值1,值2,……]:或者var ...

  8. [java]输入一个算术表达式输出结果

    动手有益. 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形.例如:  输入:3+8×2/9-2  输出:2 /** * input a calculate stri ...

  9. viewpage listview gridview加载本地大图多图OOM处理办法

    很少上博客园写东西了. 最近在写公司项目,由于需要加载本地相册通过viewpager方式来加载, 最后发现直接进入界面就OOM了. 经过几天的整理最终搞定. 现在将加载本地和加载网络图片的缓存工具类贴 ...

  10. Python无聊的总结

    在公司无聊的时候看了前辈写的python代码,突然发现一个比较好玩的python表达式: lambda x,y:x+y 咋一看,这个应该类似方法之类的,上网查了查,所以特此总结下 lambda:上代码 ...