《javascript语言精粹》读书笔记 Item1 精华与语法
第一章 精华
任何语言都有其精华的部分和鸡肋的部分,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 精华与语法的更多相关文章
- JavaScript语言精粹-读书笔记
前言:很久之前读过一遍该书,近日得闲,重拾该书,详细研究一方,欢迎讨论指正. 目录: 1.精华 2.语法 3.对象 4.函数 5.继承 6.数组 7.正则表达式 8.方法 9.代码风格 10.优美的特 ...
- <JavaScript语言精粹>-读书笔记(一)
用object.hasOwnProperty(variable)来确定这个属性名是否为该对象成员,还是来自于原型链. for(my in obj){ if(obj.hasOwnProperty(my) ...
- JavaScript 语言精粹读书笔记
最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...
- JavaScript语言精粹读书笔记 - JavaScript函数
JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...
- <JavaScript语言精粹>--<读书笔记三>之replace()与正则
今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...
- JavaScript语言精粹读书笔记- JavaScript对象
JavaScript 对象 除了数字.字符串.布尔值.null.undefined(都不可变)这5种简单类型,其他都是对象. JavaScript中的对象是可变的键控集合(keyed collecti ...
- 学习javascript语言精粹的笔记
1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...
- 【Javascript语言精粹】笔记摘要
现在大部分编译语言中都流行要求强类型.其原理在于强类型允许编译器在编译时检测错误.我们能越早检测和修复错误,付出的代价越小.Javascript是一门弱类型的语言,所以Javascript编译器不能检 ...
- js语言精粹读书笔记一
一.语法 1.
随机推荐
- Leetcode_223_Rectangle Area
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46868363 Find the total area co ...
- The 16th tip of DB Query Analyzer
The 16th tip of DB Query Analyzer ---- SQL Schedule will be executed even DBMS h ...
- LeetCode(36)- Implement Stack using Queues
题目: Implement the following operations of a stack using queues. push(x) -- Push element x onto stack ...
- The 11th tip of DB Query Analyzer
The 11th tip of DB Query Analyzer MA Gen feng ...
- JDBC 连接Oracle
工作中,我们遇到的操作数据库代码都是封装起来的,今天我们就来看看,最基本的利用JDBC来操作数据库. JDBC连接数据库主要有三个步骤: 第一步:加载数据库驱动.通常我们使用Class.forName ...
- java中List对象的操作方法
List<String> list = new ArrayList<String>(); //增加 list.add("苹果"); list.add(&qu ...
- 面试题之C# 内存管理与垃圾回收
面试题之C# 内存管理与垃圾回收 你说说C# 的内存管理是怎么样的 这句话我记了一个多礼拜了, 自从上次东北师大面试之后, 具体请看<随便扯扯东北师大的面试>. 国庆闲着没事, 就大概了解 ...
- Runtime - ③ - 分类Category探究
写博客只是为了让自己学的更深刻,参考:https://tech.meituan.com/DiveIntoCategory.html 分类(Category)是个啥玩意儿这里就不多介绍了,这里主要是研究 ...
- linux快速清空文件 比如log日志
linux中快速清空文件内容的几种方法这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 权限要求: 至少执行用户对该文件有写的权限 --w------- 1 QA_Dep ...
- Python杂记
一.函数 1.numpy 模块中的nonzero函数 nonzero返回的数非零元素的下标. 如果输入是单维度的时候它的返回值只有一个:如果输入是多个维度的话,那么它的返回值也是多个维度的.并且的它的 ...