javascript 红宝书笔记

typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象

var message = ‘some string‘;

console.log(typeof(message));     // "string"

console.log(typeof(null));   // "Object" 特殊的返回值,因为null被认为是一个空的对象引用。

注意:

  • 尚未声明过的变量,只能进行一项操作,就是使用typeof检测它的数据类型

Undefined    它只是一个值,值是undefined. 

             场景:使用var 声明变量,但没有赋值(没有初始化)时,这个变量会返回 undefined.

             Undefined主要目的是用于比较,是为了正式区分空对象指针与未经过初始化的变量,我理解为,是为了区分变量的返回值是空对象null还是undefined

当声明变量未赋值时,这个变量与undefined是等价的

var message;

console.log(message == undefined);   //true

无论什么情况下,都不要把一个变量的值,设为undefined

注意:

  • 对未赋值的变量与未声明的变量,执行typeof时,均返回 undefined;
  • 在实际操作中,只需要知道一点,使用typeof检测变量时,如果返回 undefined ,我们就会知道,这个变量没有被赋值,就是没有被初始化;

null     它只有一个值,是第二个只有一个值的数据类型,它的值是 null。

         它表示一个空的对象指针,使用typeof检测时会返回 “Object”.

var message = null;

console.log(typeof(message));   //  "Object"

如果定义的变量,将来用于保存对象,那么最好将该变量初始化为null,因为null是一个空对象.如果这个变量还没有真正的保存对象,那么这个变量的值就应该是null,而不是其它的数据类型

时间: 2024-10-16 01:23:59

javascript 红宝书笔记的相关文章

javascript 红宝书笔记之如何使用对象 如何操作数组

对象定义  ===  引用类型,描述的是一类对象所具有的属性和方法 新对象的创建 方法 new + 构造函数       var person = new Object(); 对象字面量表示       var person = {};                     备注:  新对象的创建方法,大多采用对象字面量的创建方法,这种方法能够给人封装数据的感觉.实际上,对象字面量也是向函数传递大量可选数据的首选 方式. 访问对象属性 方法 访问对象属性使用的都是 点 表示法:     con

javascript 红宝书笔记之函数、变量、参数、作用域与内存问题

ECMAScript 不介意传进来多少个参数,也不介意传进来的参数类型. 理解参数: 命名的参数只提供便利,不是必需的. ECMAScript 的变量包含两种不同的数据类型的值.分别是 简单的数据构成的基本数据型值,不能给基本型值添加属性: var name = "kevin"; name.age = 27; console.log(name.age);     //undefined 多个值构成的对象,引用类型值.引用类型的值,可以添加动态属性,并可以改变这个动态属性的值或者可以删除

javascript 红宝书笔记之操作日期

创建当日 日期对象 调用Date的构造函数而不传递参数的情况下,新创建的对象默认获取当前的日期和时间. var now = new Date(); 创建特定的日期和时间对象 Date.parse("表示日期的字符串");                    //该方法接收一个表示日期的字符串参数,根据这个字符串会返回相应的日期格式:如果这个字符串不能表示日期,则会返回NAN. var nowDate = new Date(Date.parse("May 25, 2001&q

OPENGL 红宝书实验笔记

第一个程序triangles的配置过程,原文链接. OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资料终于跑起来了,记录一下 一.环境搭建指南 书中的地址 http://www.opengl-redbook.com/ 去这里打包下载OpenGL红宝书的示例代码,解压后是这样 虽然没有第一章的代码但第一章的内容好歹算一个完整的例子,网上各种环境搭建教程也都以第一章的代码为例,我们就

【转载】关于在vs2013中配置opengl红宝书第八版环境

 本文为转载 原文地址 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版, 第一个例子研究了一段时间终于可以运行了,不知道有没有童鞋跟我遇到一样的问题. 下面说说我怎么配置的: 首先去 http://www.opengl-redbook.com/ 下载红宝书的源代码,解压得到这个 然后打开vs2013新建一个空的win32控制台项目, 然后点项目右键属性,点击vc++目

VS2012通过makefile编译OpenGL红宝书的示例代码

> 通过创建新VC项目,然后设置一堆属性,对于懒人来说还是太复杂了.既然它自带了makefile,可以尝试下使用nmake. 需要注意的是VS2012的安装目录里面已经没有GL的头文件和库文件.这个改动应该在VS2010或者更早就已经采用了. 现在有了VS SDK.VS2010自动的SDK目录是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A,更高的版本可能使用v8.0.v8.0A,反正都在这个目录下面.这个目录下面有include.lib文

熬了多少个夜晚,大家期待的《网络工程师思科华为华三实战案例红宝书》即网工必备技术命令大全版本1完书

熬了多少个夜晚,最近也没空更新博客.军哥编写的大家期待的<网络工程师思科华为华三实战案例红宝书>即网工必备技术命令大全版本1完书,一本融合了思科华为华三的实战型辅导书(辅助乾颐堂QCNA课程的).不多说上图 目录关于作者 2本书读者和笔者心语 3本书内容和结构 4第1部分 网络实施基础 15案例0 模拟器的部署和连接管理 16学习利器模拟器简书 160.1 华为模拟器Ensp部署 160.2 思科模拟器EVE部署 310.3 部署SecureCrt管理网络设备 400.3.1 部署终端管理软件

红宝书 ECMAScript笔记

HTML中使用JS .基本概念 今天的JavaScript拥有了闭包.匿名函数.元编程等特性.它简单又复杂! 组成要素: 文档模式 严格模式 顶部加   关键字和保留字 关键字: 保留字: 函数内部的变量如何当作全局变量使用:(曾经要用到这个知识当时找不到答案)但是不推荐. typeof操作符 前置 与 后置的区别: ==(数值)与===(数值+类型)的区别 不允许用with 所有变量必须声明, 赋值给为声明的变量报错,而不是隐式创建全局变量. eval中的代码不能创建eval所在作用域下的变量

js红宝书总结笔记

一.JS的简介: 1.宿主环境:浏览器.node.adobe flash; 2.DOM(文档对象模型)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口(API): DOM0级:即DHTML:    DOM1级:主要映射文档结构: DOM2级:增加视图,样式,事件,遍历和范围: DOM3级:增加验证等方法: 3.BOM(浏览器对象模型) 二.在html中使用js 1.script的属性:defer(html4.01):脚本延迟至页面加载完成后执行:async(html5):不必等待脚本