第一章 精华

任何语言都有其精华的部分和鸡肋的部分,javascript也不例外,而且鸡肋的部分还很多。但javascript的流行却不受他的质量影响。

javascript为何如此流行?因为他是web浏览器的语言,所有浏览器都识别他。他与浏览器的结合自然成为了世界上最流行的语言之一。

javascript建立在一些非常好的想法和少数非常坏的想法之上。非常好的想法包括函数、弱类型、动态对象(这个还没理解)和富有表现力的对象字面量表示法;坏的想法包括基于全局变量的编程模型(所有编译单元的所有顶级变量被撮合到一个被称为全局对象的公共命名空间中)。

第二章 语法

2.1 空白

主要讲了何时可以用空白,书中不建议用/* */注释,尽量用//注释。比如:

/*
var rm_a=/a*/.match(s);
*/

这样会导致语法错误

2.2 标识符

保留字也不能用在对象字面量中或命名一个属性。

2.3 数字

(1) javascript只有单一的数字类型,所以1和1.0的值相同。与其他大多数编程语言不同的是,

它没有分离出整数类型,所以1和1.0的值相同。

(2)100和1e2是相同的数字。

(3)值Infinity表示所有大于1.79769313486231570e+308的数(即正无穷大)

(4)JavaScript有一个对象Math,它包含一套作用于数字的方法。

(5) 6种值会为假(==false),分别是false, null, undefined, ” ,0, NaN

2.4 字符串

(1)所有字符都是16位的,可以用单引号和双引号创建一个字符串。没有字符类型。

(2)”A”=”\u0041”,\u允许指定用数字表示字符码位

(3)字符串是不可变的。一旦字符串被创建,就永远无法改变它。但可以通过+运算符连接其他字符串来

创建一个新字符串。两个包含着完全相同的字符且字符顺序也相同的字符串被认为是相同(===)的字符串。

2.5 语句

(1) 在web浏览器中,每个< script>标签都提供一个被编译并可立即执行的编译单元。因为缺少链接器,javascript把它们一起抛入一个公共的全局名字空间中。

(2)javascript的代码块不会创建一个新的作用域。当var语句被用在函数内部时,它定义的是这个函数的私有变量。(最佳实践:定义任何变量都使用var)

(3)for in语句会枚举一个对象的所有属性名(键名)。通常需要检测object.hasOwnProperty(variable)来确定这个属性名是该对象的成员,还是来自于原型链。

2.6 表达式

(1)typeof运算符产生的值有 ‘number’,’string’,’boolean’,’undefined’,’function’,’object’ 6种。如果一个运算数是一个数组或null,那么结果是’object’,这是不对的。

(2)&& 的用法:如果第一个运算数的值是假,那么结果是第一个运算数的值。否则产生第二个运算数的值。如,可利用&&运算符避免检索undefined引起的异常

flight.equipment          //undefined
flight.equipment.model //throw"TypeError"
flight.equipment && flight.equipment.model //undefined

(3)|| 用法:如果第一个运算数的值是真,那么结果是第一个运算数的值。否则产生第二个运算数的值。|| 运算符可以用来填充默认值:

var status = flight.status || "unknow";

版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226

《javascript语言精粹》读书笔记 Item1 精华与语法的更多相关文章

  1. JavaScript语言精粹-读书笔记

    前言:很久之前读过一遍该书,近日得闲,重拾该书,详细研究一方,欢迎讨论指正. 目录: 1.精华 2.语法 3.对象 4.函数 5.继承 6.数组 7.正则表达式 8.方法 9.代码风格 10.优美的特 ...

  2. <JavaScript语言精粹>-读书笔记(一)

    用object.hasOwnProperty(variable)来确定这个属性名是否为该对象成员,还是来自于原型链. for(my in obj){ if(obj.hasOwnProperty(my) ...

  3. JavaScript 语言精粹读书笔记

    最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...

  4. JavaScript语言精粹读书笔记 - JavaScript函数

    JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...

  5. <JavaScript语言精粹>--<读书笔记三>之replace()与正则

    今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...

  6. JavaScript语言精粹读书笔记- JavaScript对象

    JavaScript 对象 除了数字.字符串.布尔值.null.undefined(都不可变)这5种简单类型,其他都是对象. JavaScript中的对象是可变的键控集合(keyed collecti ...

  7. 学习javascript语言精粹的笔记

    1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...

  8. 【Javascript语言精粹】笔记摘要

    现在大部分编译语言中都流行要求强类型.其原理在于强类型允许编译器在编译时检测错误.我们能越早检测和修复错误,付出的代价越小.Javascript是一门弱类型的语言,所以Javascript编译器不能检 ...

  9. js语言精粹读书笔记一

    一.语法 1.

随机推荐

  1. 数据包接收系列 — NAPI的原理和实现

    本文主要内容:简单分析NAPI的原理和实现. 内核版本:2.6.37 Author:zhangskd @ csdn 概述 NAPI是linux新的网卡数据处理API,据说是由于找不到更好的名字,所以就 ...

  2. 如何让minicom换行

    以前在使用minicom验证裸板代码的时候,经常会遇到以下这个问题: 通常一直打数据往后打就只能打一行,然后就不能换行了,遇到这个问题如何解决? 看到屏幕下方提示:CTRL-A  Z  for hel ...

  3. masm下几种常见函数调用方式

    masm没有fastcall调用方式,其特点为: 1 第一个参数放入ecx,第二个参数放入edx: 2 如果有剩余参数则从右向左压栈: 3 被调用函数清理栈(平衡栈): 4 若有返回值放入eax: 5 ...

  4. Jedis对Redis的常用命令操作

    本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...

  5. fastDFS与Java整合上传下载

    由于项目需要整合个文件管理,选择使用的是fastDFS. 整合使用还是很方便的. 准备 下载fastdfs-client-java源码 源码地址 密码:s3sw 修改pom.xml 第一个plugin ...

  6. Java IO学习--(四)网络

    Java中网络的内容或多或少的超出了Java IO的范畴.关于Java网络更多的是在我的Java网络教程中探讨.但是既然网络是一个常见的数据来源以及数据流目的地,并且因为你使用Java IO的API通 ...

  7. Supervisor安装、配置、开启启动

    1.安装Python包管理工具(easy_install) wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - ...

  8. Pascal's Triangle(杨辉三角)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  9. 轻松解决oracle11g 空表不能exp导出的问题

    轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]     字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不 ...

  10. JVM组成

    java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时 ...