JavaScript基本类型值-Undefined、Null、Boolean

大致介绍

ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。

Undefined

Undefined时全局变量的一个属性,它只有一个值即:undefined。当使用var声明变量但未对其初始化时,这个变量的值就是undefined。

var test;
console.log(test); //undefined

对于未声明过的变量只能进行一种操作,即typeof检测其数据类型

 //var a
console.log(typeof a); //undefined

undefined通常出现的场景:

1、已经声明但未赋值的变量

2、typeof检测未声明的变量的数据类型

3、没有返回值的函数的执行结果

4、函数没有传入参数

5、void(expression)

//1、
 var test;
 console.log(test); //undefined
 //2、
 //var a
 console.log(typeof a); //undefined
 //3、
 function f(){}
 console.log(f()); //undefined
 //4、
 function f(x){
 return x;
 }
 console.log(f()); //undefined
 //5、
 console.log(void(0)); //undefined

严格相等和undefined

可以使用严格相等和不相等来检测一个变量是否拥有值

var x ;
 if(x === undefined){
 console.log(1);
 }else{
 console.log(2);
 }

注意:这里要用严格相等,因为 null == undefined

void操作符和undefined

可以用void操作符来代替undefined

var x ;
 if(x === void(0)){
 console.log(1);
 }else{
 console.log(2);
 }

Null

Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑的角度看,null值表示一个空对象的指针。null常被放在期望一个对象,但不引用任何对象的参数位置。

console.log(document.getElementById('ol')); //null

注意:

console.log(typeof null); //object

产生这样的原因就如前面所说,null值表示一个空对象的指针,用typeof检测数据类型,肯定就是object

从最底层讲不同的对象在底层都表示为二进制,在javascript中二进制前三位都为0会被判断为object类型,null的二进制表示是全0,所以执行typeof时返回'object'

null和undefined

null和undefined时不同的,但是他们都表示空值,null表示“空值”,undefined表示“未定义”。

typeof null // object
 typeof undefined // undefined
 null === undefined // false
 null == undefined // true
 null === null // true
 null == null // true
 !null //true
 isNaN(1 + null) // false
 isNaN(1 + undefined) // true

Boolean

Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面值:true和false

注意:Boolean类型的字面值true和false是区分大小写的

虽然Boolean类型的字面值只有两个,但是ECMAScript中所有的类型的值都有与这两个Boolean值等价的值。要将一个值转换为对应的Boolean值,可以调用转型函数Boolean()

var message = 'hello world';
var messageBoolean = Boolean(message);
console.log(messageBoolean); //true

转换表:

字符串 数字 布尔值
undefined "undefined" NaN false
null  “null”  0  false
true  “true”  1  
false  “false”  0  
""空字符串    0  
"1.2" 非空,数字    1.2  
"o" 非空,非数字      
 0  "0"    false
 -0 "0"    false 
 NaN  "NaN"   false 
 infinity  "infinity"   true 
-infinity   "infinity"   true 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

时间: 2017-02-21

走进javascript——不起眼的基础,值和分号

值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码. var x = 'javascript'; //javascript x = "hello"; // hello x = 555; //555 x = null; //null x = a; //a is not defined x = true; //true 对于数字是直接赋值的,因为它没有多样性,数字就是数字.但是对于值是英文的情况就很难区分了,因为在编程语言中,英文既可能是字符串,也可能是

JS 分号引起的一段调试问题

来看一下下面的代码: var a=textbox1.text; var b=5; if(a<b);//如果用户输入的值小于5,就取5 { a=b; } 看看执行后有什么效果,无论textbox1.text是什么值,都会时放条件判断.为什么呢.有没有什么发现. 原来在写代码的时候,if(a<b);这里多了个分号.一不小心犯的错,却花了不少时间来解决. 注:刚写下的经过,再次打开时,没有内容了.因此就精简一点了.写个大致意思了

浅析Javascript的自动分号插入(ASI)机制

前言 相信从事过C#和Java的大家都知道分号是用作断句(EOS,end of statement)的,而且必须加分号,否则编译就不通过了.但JavaScript由于存在ASI机制,因此允许我们省略分号.ASI机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性. 规范理论 es5 标准定义了自动分号插入规则,包括以下三个基本规则加两个前置条件: 前置条件 1.如果插入分号后解析结果是空语句,那么不会自动插入分号

浅谈javascript的分号的使用

JS中function 的开头有必要加分号吗?js语句后应该加分号吗? javascript大括号后面应使用分号吗?JS中function 的开头有加感叹号.分号是什么意思呢? Js多个文件集成成一个文件后,压缩代码时避免发生语法错误,可以如下处理 一.js 前加分号 例如:;(function($){...此处代码...})(); Javascript中分号表示语句结束,在开头加上,是为了压缩的时候和别的方法分割一下,表示一个新的语句开始 二.js函数后加分号 例如 // 模块1 // 前面有

JavaScript基本类型值-Number类型

大致介绍 在JavaScript的内部采用IEEE754格式来表示数字,所以不区分整数和浮点数,都是用64位浮点数的形式储存.就是说,在JavaScript内部,就根本没有小数.但是有些运算必须得需要整数完成,所以JavaScript有时会把64位的浮点数转换成32位的整数,再进行运算. 整数 JavaScript对整数提供四种表示方法: 1.二进制:有前缀0b的数值,出现0,1以外的数字会报错 2.八进制:有前缀0o的数值,或者是以0后面再跟一个数字(0-7).如果超出了前面所述的数值范围,则

javascript 分号总结及详细介绍

javascript每条语句都是以分号结束,但由于javascript具有分号自动插入规则,所有不同的编程人员有不同的习惯,有的加分号,有的不加分号,那么到底加分号好还是不加分号好?本文章向大家探讨javascript每条语句该不该加分号. javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动

JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)

看代码: HTML: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt

JavaScript的基本类型值-String类型

大致介绍 String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.在JavaScript中没有单个的字符型,都是字符串.字符型就相当于只包含一个字符的字符串. 引号 字符串可以由双引号("")或单引号('')表示,但是要注意,如果是双引号开始就要以双引号结束,单双引号是可以嵌套的 "hello"; //正确         'hello'; //正确         'hello"; //错误         "hel

JavaScript中的分号插入机制详细介绍

仅在}之前.一个或多个换行之后和程序输入的结尾被插入 也就是说你只能在一行.一个代码块和一段程序结束的地方省略分号. 也就是说你可以写如下代码 复制代码 代码如下: function square(x) {     var n = +x     return n * n } 但是却不可以写的像下面代码一样,这样就报错了哦 复制代码 代码如下: function area(r) {    r = +r    return Math.PI*r*r }//error 仅在随后的输入标记不能解析时插入

js中关于一个分号的崩溃示例

复制代码 代码如下: if ($("span", $("#txtStere").siblings("div")).text() === "*"); { if (!IsNum("#txtStere")) { $("#txtStere").next().text("您选择的运费模板是按体积计价,物流体积不能为空且需是数字"); return false; } else {

如何防止JavaScript自动插入分号

在 JavaScript 中,行尾的分号有一种自动插入机制,这样子,可以容忍某些朋友忽略了输入分号. 当然你最好养成输入分号的习惯,同时掌握 JavaScript 是如何处理忽略输入分号的情况的,因为这种知识有助于你理解没有分号的代码. JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符.然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有空格符都被忽略,因此程序可以利用空格格式化代码. 这两种机制的冲

深入理解javascript动态插入技术

最近发现各大类库都能利用div.innerHTML=HTML片断来生成节点元素,再把它们插入到目标元素的各个位置上.这东西实际上就是insertAdjacentHTML,但是IE可恶的innerHTML把这优势变成劣势.首先innerHTML会把里面的某些位置的空白去掉,见下面运行框的结果: 复制代码 代码如下: <!doctype html><html dir="ltr" lang="zh-CN">    <head>     

JavaScript动态插入CSS的方法

写组件时有时想把一些组件特性相关的 CSS 样式封装在 JS 里,这样更内聚,改起来方便.JS 动态插入 CSS 两个步骤:创建1.一个 style 对象 2.使用 stylesheet 的 insertRule 或 addRule 方法添加样式 一.查看样式表 先看下 document.styleSheets,随意打开一个页面 其中前三个是通过 link 标签引入的 CSS 文件,第四个是通过 style 标签内联在页面里的 CSS.有如下属性 每一个 cssRule 又有如下属性 其中的 c

JavaScript 自动完成脚本整理(33个)

如果你也正准备在这方面提升自己网站的用户体验,下面为你准备了33个JavaScript自动完成脚本,当然还包括用Jquery实现的.1. Proto!TextboxList (演示地址)=700) window.open('/upload/20091020155954866.jpg');" src="http://files.jb51.net/upload/20091020155954866.jpg" onload="if(this.offsetWidth>'

JavaScript自动点击链接 防止绕过浏览器访问的方法

做支付宝帐号登录,需要做一个效果,就是打开链接页面的时候,不需要点击链接,直接跳到支付宝登录页面.也就是说,需要做一个自动点击链接的效果. 基本都是用这个: <body onLoad="autoclick('auto')"> <a id='auto' href=".$url."><img border='0' src='images/alipaylog.gif' /></a> </body> <scr

javascript自动生成包含数字与字符的随机字符串

本文实例讲述了javascript自动生成包含数字与字符的随机字符串的方法.分享给大家供大家参考.具体如下: 这里主要用到Math.random() 和 Math.floor() 两个函数 Math.random()   -- 返回0和1之间的伪随机数 可能为0,但总是小于1,[0,1) Math.floor()    -- 向下取整,舍掉小数字后的值 实现随机多位数的方法: 复制代码 代码如下: /** * *    随机生成数字 * *@param num 生成数字位数 */  functi

asp(JavaScript)自动判断网页编码并转换的代码

完整的示例代码如下: 复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>JavaScript自动判断网页编码并转换</titl

javascript自动切换焦点控制效果完整实例

本文实例讲述了javascript自动切换焦点控制的方法.分享给大家供大家参考,具体如下: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <html> <head> <script type="text/javascript" src="jquery-1.7.2.min.js"><

JavaScript 自动在表格前面增加序号

JavaScript 自动为表格增加序号 .index_tab{width:100%;border-collapse:collapse;border:1px solid #005892;margin:8px 0;} .index_tab td{line-height:35px;border:1px solid #005892;padding-left:4px;} tr.tr_top td{line-height:32px;border:none;background-color:#005892;