《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.
随机推荐
- 客户全局信用控制&非全局信用控制
看个简单的例子 客户信用限额 非全局信用控制 非全局信用控制比较简单,我们看一下全局信用控制 设置: 实现结果:全局&非全局对比
- EBS-子库存转移和物料搬运单区别
FROM:http://bbs.erp100.com/forum.php?mod=viewthread&tid=261550&extra=page%3D7 EBS-子库存转移和物料搬运 ...
- objective-c中线程编程一例
/* print with threads : print every file's first n char contents under the path that pass to this pr ...
- obj-c编程10:Foundation库中类的使用(4)[文件管理,查询当前进程信息]
接上一篇文件管理博文.我们可以用NSPathUtilities.h中包含的NSString函数和分类扩展来以兼容的方式处理路径.下面凡是有系统编程经验的童鞋都知道是啥意思了: #import < ...
- angular1.0 app
angular 1.0 简单的说一下就是ng启动阶段是 config-->run-->compile/link config阶段是给了ng上下文一个针对constant与provider修 ...
- LindDotNetCore~框架介绍及特色功能(有点springboot的意思)
LindDotNetCore模块介绍 大叔博客 LindDotNetCore相关模块介绍 [x] 全局都是依赖DI [x] 消息队列 [x] NoSql [x] Caching [x] 仓储 [x] ...
- P2453 [SDOI2006]最短距离
题目描述 一种EDIT字母编辑器,它的功能是可以通过不同的变换操作可以把一个源串X [l..m]变换为新的目标串y[1..n].EDIT提供的变换操作有: 源串中的单个字符可被删除(delete): ...
- SpringMvc+AngularJS通过CORS实现跨域方案
什么是跨域请求问题? 这个问题的起因在于现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便. 但跨域的需求却一直都在,为了跨域,勤劳勇敢的程序猿 ...
- vue中get和post请求
import axios from 'axios'; import router from '@/router'; import { setSessionStorage, getSes ...
- vue2.0 — 移动端的输入框实时检索更新列表
我们都是行走在这世界的孤独者 - 暖暖 最近在做vue2.0的项目遇到一个移动端实事检索搜索更新列表的效果,但用户在搜索框输入客户的电话或姓名的时候,客户列表内容会做相应的更新,下面给大家看下图~· ...