由于undefined和null两个值的比较是相等的,所以,未初始化的变量和赋值为null的变量会相等。这时,可以采用typeof变量的类型进行比较。但,建议还是养成编码的规范,不要忘记初始化变量。

var box;

var car = null;

alert(typeof box == typeof car)

以下是其他类型转换成Boolean类型规则

数据类型

转换为true的值

转换为false的值

Boolean

true

false

String

任何非空字符串

空字符串

Number

任何非零数字值(包括无穷大)

0和NaN

Object

任何对象

null

Undefined

undefined

ECMAScript提供了isNaN()函数,用来判断这个值到底是不是NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。

alert(isNaN(NaN));                      //true

alert(isNaN(25));                         //false,25是一个数值

alert(isNaN('25'));                        //false,'25'是一个字符串数值,可以转成数值

alert(isNaN('Lee'));                      //true,'Lee'不能转换为数值

alert(isNaN(true));                       //false      true可以转成成1

parseInt()除了能够识别十进制数值,也可以识别八进制和十六进制。

alert(parseInt('0xA'));                   //10,十六进制

alert(parseInt('070'));                   //56,八进制

alert(parseInt('0xALee'));              //100,十六进制,Lee被自动过滤掉

ECMAScript为parseInt()提供了第二个参数,用于解决各种进制的转换。

alert(parseInt('0xAF'));                 //175,十六进制

alert(parseInt('AF',16));                //175,第二参数指定十六进制,可以去掉0x前导

alert(parseInt('AF'));                    //NaN,理所当然

alert(parseInt('101010101',2));      //314,二进制转换

alert(parseInt('70',8))                   //56,八进制转换

toString()方法一般是不需要传参的,但在数值转成字符串的时候,可以传递进制参数。

var box = 10;

alert(box.toString());                          //10,默认输出

alert(box.toString(2));                        //1010,二进制输出

alert(box.toString(8));                        //12,八进制输出

alert(box.toString(10));                       //10,十进制输出

alert(box.toString(16));                       //a,十六进制输出

Object()里可以任意传参,可以传数值、字符串、布尔值等。而且,还可以进行相应的计算。

var box = new Object(2);                    //Object类型,值是2

var age = box + 2;                              //可以和普通变量运算

alert(age);                                          //输出结果,转型成Number类型了

既然可以使用new Object()来表示一个对象,那么我们也可以使用这种new操作符来创建其他类型的对象。

var box = new Number(5);                  //new String('Lee')、new Boolean(true)

alert(typeof box);                               //Object类型

parseFloat()是用于浮点数值转换的,和parseInt()一样,从第一位解析到非浮点数值位置。

alert(parseFloat('123Lee'));           //123,去掉不是别的部分

alert(parseFloat('0xA'));               //0,不认十六进制

alert(parseFloat('123.4.5'));           //123.4,只认一个小数点

alert(parseFloat('0123.400'));        //123.4,去掉前后导

alert(parseFloat('1.234e7'));          //12340000,把科学技术法转成普通数值

js变量的更多相关文章

  1. js变量及其作用域(附例子及讲解)

    Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量   工具/原料   Ch ...

  2. javascirpt对象运用与JS变量

    abcdefghijklmnopqrstuvwyz String 对象方法 charAt() 方法可返回指定位置的字符.stringObject.charAt(index)(index从0开始)[ht ...

  3. js变量及其作用域

    Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量   一.js变量的类型及 ...

  4. JS变量和函数的一些理解

    今日看了下JS变量的一些文章,有些感触,把自己总结的一些写出来. JS初始化的过程1.JS解释器执行代码之前,创建全局变量2.用预定义的值和函数来初始化全局对象中的属性,3.搜索函数外的var声明,创 ...

  5. js变量在属性里的写法 常用mark 多个DL遍历添加一个父级DIV

    标记用 js变量比如url链接一般都是a里面的href属性值 在js里单引号链接 以后再忘记就能有地方找了 例子: /* 添加1200 居中div 包裹 获取元素集合 上层元素100% * @ele ...

  6. js 变量提升+方法提升

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 详解js变量、作用域及内存

    详解js变量.作用域及内存 来源:伯乐在线 作者:trigkit4       原文出处: trigkit4    基本类型值有:undefined,NUll,Boolean,Number和Strin ...

  8. js变量申明提前及缺省参数

    现在最先的行为准则:js变量申明必须带var:然后开始随笔: 函数中的变量申明在编译的时候都会提到函数开头. 例如: function foo(){ console.log('some code he ...

  9. JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换

    1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...

  10. 一个js变量以及其作用域的源码示例

    今天遇到了一个问题,抽象出来的代码如下: var zoom=13; function setZoom(){ zoom=14; } function displayZoom(){ this.setZoo ...

随机推荐

  1. 【bootstrapValidator 不验证】使用bootstrapValidator 验证效果不起作用

    虽然在页面ready的时候 就绑定了验证表单 ,但是在点击提交按钮之后 依旧没有验证的效果 . 那就在提交按钮的点击事件中 添加一句话: $(document).ready( function () ...

  2. 使用Hue上传hive数据

    大概逻辑是先上传hdfs数据,然后创建hive外部表,关联到hdfs上传数据的位置. 截图比较概要,但是用起来很简单 1.创建路径和上传文件 2.创建外部表

  3. js小例子(简单模糊匹配输入信息)

    该例子实现的是用户输入信息或者字母时可以搜索出来,鼠标点击选择 <!DOCTYPE html> <html> <style> p{ width:200px; hei ...

  4. ExtJs文件上传(Ext.ux.form.FileUploadField)

    Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /**  * @cfg {String} buttonText The b ...

  5. 被解放的GPU CSS3动画加速

    概念 图形处理器( Graphics Processing Unit ) 专门用来处理在个人电脑.工作站或游戏机上图像运算工作 显卡的“心脏” 90%以上的新型台式电脑和笔记本型电脑拥有集成图形处理器 ...

  6. BZOJ1103[POI2007]大都市meg 题解

    题目大意: 有一棵树,最先每条边的权值是1,然后给出n+m-1个操作,操作有两种:1.询问一个点到根的路径上的权值和:2.将一条边的权值改为0. 思路: 用dfs序将树化为序列,在dfs序中我们会保存 ...

  7. Leetcode Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  8. 【BZOJ】2078: [POI2004]WYS

    题意: 给n个互不相交的多边形(边均平行于坐标轴),问最大深度.深度的定义是,若多边形A被多边形B包含,则\(dep[A]=max(dep[B])+1\).坐标系的深度为0.(n<=40000, ...

  9. 【CF】148D Bag of mice

    http://codeforces.com/problemset/problem/148/D 题意:w个白b个黑,公主和龙轮流取,公主先取,等概率取到一个.当龙取完后,会等概率跳出一只.(0<= ...

  10. 【BZOJ1677】[Usaco2005 Jan]Sumsets 求和 递推

    ... #include <iostream> using namespace std; ]; int n,i; int main() { cin>>n; f[]=; ;i&l ...