认认真真看完了《JavaScript高级程序设计》第3章的基本概念,原来一直不明白的知识点都在这里面啊。。。T_T。。。基础真的很重要,很重要,很重要。。。

  现在终于明白了读书的技巧,书读的多真的不如读的精,把里面的东西都梳理一遍,自己在脑中有清晰的脉络,并且理解里面的知识点,才算是把书读薄了。

  对于阅读,自己目前认为有效的三点推荐

  (1)推荐看电子书。因为电子书容易切换目录,在左边看着目录一节一节往下看,便很容易把握书中的脉络,而看纸质书,看着看着就会找不着方向了。

  (2)一定要边看便做笔记,尤其是自己之前不明白,看到了然后恍然大悟的知识点,方便日后巩固。在看的时候,我们会以为自己懂了,可是人的记忆力真的没有自己想象的那么强大,还是得不断强化记忆来巩固。

  (3)理清知识脉络(思维导图是很好的工具),再通过网搜和看一些大牛的博客弄明白每一个知识点,当然某些知识点还是得通过实践才能真正领悟。

以下是数据类型的笔记整理:

首先,是一张整体脉络图

ECMAScript 中有5种简单数据类型(也称为基本数据类型)—>Undefined、Null、Boolean、Number、String。1种复杂数据类型—>Object。(Object 的本质是由一组无序的名值对组成的。)

(1)Undefined 类型:

 Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined。(未声明的变量也返回 undefined)
   对未初始化和未声明的变量执行 typeof 操作符,都会返回 undefined 值。因此显式地初始化变量依然是明智的选择。
(2)Null 类型:
 Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null。从逻辑角度来看,null 值表示一个空对象指针,因此 typeof null 返回 “object”。
   如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。
   undefined 值是派生自 null 值的。因此ECMA-262规定:alert(null == undefined) //true 
    null == undefined 会返回 ture,因为它们是类似的值;
    unll === undefined 会返回 false,因为它们是不同类型的值。
    undefinded:无论什么情况下,都没有必要把一个变量的值显式地设置为 undefined;
    null:只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存 null 值。这样做不仅可以体现 null 作为空对象指针的惯例,而且还有助于进一步区分 null 和 undefined。
(3) Boolean 类型:
    两个字面值:true 和 false(注意:小写)。
    转型函数:Boolean(),流程控制语句(如 if 语句)自动执行该 Boolean 转换。
数据类型
转换为 true 的值
转换为 false 的值
Boolean
true
false
String
任何非空字符串
""(空字符串)
Number
任何非零数值(包括无穷大)
0 和 NaN
Object
任何对象
null
Undefined
n/a
undefined

(4)Number 类型:

 由于浮点数值需要的空间是保存整数值的两倍,因此 ECMAScript 会不失时机地将浮点数值转换为整数值。
 ECMAScript 能够表示的最小数值保存在 Number.MIN_VALUE 中,最大数值保存在 Numebr.MAX_VALUE 中,超出则被自动转换成 Infinity 值
 判断一个数是否是有穷,可以用 isFinite() 函数。
 在 ECMAScript 中,任何数值除以 0 会返回 NaN,因此不会影响其他代码的执行。
  NaN 本身的特点:(1)任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN,这个特点在多步计算中有可能导致问题。(2)NaN 与任何值都不相等,包括 NaN 本身。alert(NaN == NaN); // false
 为了消除在使用 parseInt() 函数时可能导致的困惑,可以为这个函数提供第二个参数:转换时使用的基数(即多少进制)。parseFloat() 只解析十进制,因此它没有用第二个参数指定基数的用法。
(5)String 类型:
ECMAScript 中的字符串是不可变的,一旦创建,它们的值就不能改变。 
把一个值转换为一个字符串:(1)toString();(2)String()
—>数值、布尔值、对象和字符串值都有 toString() 方法。但 null 和 undefined 值没有这个方法;
—>在不知道要转换的值是不是 null 或 undefined 的情况下,可以使用转型函数 Stirng(),该函数能够将任何类型的值转换为字符串。
返回值
值有 toString() 方法
调用该方法(没有参数)并返回相应的结果
值是 null 返回“null”
指是 undefined
返回“undefined”

(6)Object 类型:

ECMAScript 中的对象其实就是一组数据和功能的集合。
重要思想:在 ECMAScript 中,Object 类型是所有它的实例的基础。即,Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。
Object 的每个实例都具有下列属性和方法:
属性/方法
解释
constructor
保存着用于创建当前对象的函数
hasOwnProperty(propertyName)
用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。参数 propertyName 必须以字符串形式指定。
isPrototypeOf(object)
用于检查传入的对象是否是传入对象的原型。
propertyIsEnumerable(propertyName)
用于检查给定的属性是否能够使用 for-in 语句来枚举。同样,参数 propertyName 必须以字符串形式指定。
toLocaleString()
返回对象的字符串表示,该字符串与执行环境的地区对应。
toString()
返回对象的字符串表示。
valueOf()
返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值相同。
由于在 ECMAScript 中 Object 是所有对象的基础,因此所有对象都具有这些基本的属性和方法。

《JS高程》数据类型学习笔记的更多相关文章

  1. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  2. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  3. Underscore.js 源码学习笔记(上)

    版本 Underscore.js 1.9.1 一共 1693 行.注释我就删了,太长了… 整体是一个 (function() {...}());  这样的东西,我们应该知道这是一个 IIFE(立即执行 ...

  4. 浏览器中js执行机制学习笔记

    浏览器中js执行机制学习笔记 RiverSouthMan关注 0.0772019.05.15 20:56:37字数 872阅读 291 同步任务 当一个脚本第一次执行的时候,js引擎会解析这段代码,并 ...

  5. 纯JS实现KeyboardNav(学习笔记)一

    纯JS实现KeyboardNav(学习笔记)一 这篇博客只是自己的学习笔记,供日后复习所用,没有经过精心排版,也没有按逻辑编写 GitHub项目源码 预览地址 最终效果 KeyboardNav使用指南 ...

  6. 纯JS实现KeyboardNav(学习笔记)二

    纯JS实现KeyboardNav(学习笔记)二 这篇博客只是自己的学习笔记,供日后复习所用,没有经过精心排版,也没有按逻辑编写 这篇主要是添加css,优化js编写逻辑和代码排版 GitHub项目源码 ...

  7. [360前端星计划]BlackJack(21点)(纯JS,附总部学习笔记)

    [360前端星计划]总部学习笔记(6/6) [360前端星计划]详情跳转 游戏界面预览 目录 一.游戏介绍 1.起源 2.规则 3.技巧 二.游戏设计 1.整体UI构思 2.素材采集 3.游戏总规划 ...

  8. JS高级程序设计学习笔记之第三章基本概念(语法,数据类型,流控制语句,函数)——查漏补缺

    一.语法: 区分大小写; 2.标识符:就是指变量.函数.属性的名字,或者函数的参数 a.标志符的规则:①第一个字符必须是一个字母.下划线(_)或一个美元符号($).                   ...

  9. JS第一周学习笔记整理

    目录 JS正式课第一周笔记整理 JS正式课第一周笔记整理 webstorm : 代码编辑器 浏览器: 代码解析器: Git : 是一个工具;用于团队协作开发项目管理代码的工具:在工作中用git.svn ...

随机推荐

  1. Huffman树与编码的简单实现

    好久没写代码了,这个是一个朋友问的要C实现,由于不会C,就用JAVA写了个简单的.注释掉的代码属性按照原来朋友发的题里带的参数,发现没什么用就给注释掉了. package other; import ...

  2. Matcher类:(转)

    Matcher类:     使用Matcher类,最重要的一个概念必须清楚:组(Group),在正则表达式中 ()定义了一个组,由于一个正则表达式可以包含很多的组,所以下面先说说怎么划分组的, 以及这 ...

  3. 基于Storm的工程中使用log4j

    最近使用Storm开发,发现log4j死活打不出debug级别的日志,网上搜到的关于log4j配置的方法都试过了,均无效. 最终发现问题是这样的:最新的storm使用的日志系统已经从log4j切换到了 ...

  4. 联系人的侧边字母索引ListView 将手机通讯录姓名通过首字母排序。

      package com.lixu.letterlistview; import java.util.ArrayList; import java.util.List; import org.apa ...

  5. 转: HTTP协议的头信息详解

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,响 ...

  6. c++普通高精除单精

    //没有在网上测试 //手测几组无误 //如有错误,还望指出,不胜感激. #include<cstdio>#include<cstring>int a1[600],a2,a4[ ...

  7. APC to USB

    from :http://www.allpinouts.org/index.php/APC_USB_cable_schematic connector or cable wiring APC part ...

  8. Fedora20的一些个人配置

    0,老传统 yum install screenfetch 1,关闭蜂鸣器 edit /etc/bashrc setterm -blength 0#setterm -bfreq 10 #这个可以设置声 ...

  9. Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(三)

    最近写了个Matlab程序,好慢呐……所以开始学习Matlab与C/C++混合编程.下面写了个测试代码,显示一个Double类型矩阵中的元素. 源代码 #include "mex.h&quo ...

  10. [pjsip]板砖理解pjsip体系结构

    在pjsip的官方开发向导中给出两张体系结构图,分别是消息流程图和类图,如下所示: 图1:消息流程图 图2:类图