第四章 表达式和运算符 P66 运算符优先级,从上到下: p68 属性访问表达式和调用表达式的优先级比运算符优先级都要高,eg: typeof my.functions[x](y) //typeof在两次属性访问和函数调用后执行 赋值运算优先级极低,通常最后执行. P69 R:从右至左结合性 x = ~-y; //x = ~(-y) w = x = y = z; //w = (x = (y = z)) q = a?b:c?d:e?f:g; //q = a?b:(c?d:(e?f:g)) P69…
第六章 对象 P123 在ES3中,点运算符后的标识符不能是保留字.如果一个对象的属性名是保留字,name必须使用方括号的形式访问它们,如o["for"]和o["class"].ES5可以在点运算符后直接使用保留字. P123 JS对象都是关联数组:数组元素通过字符串索引而不是数字索引,也称散列.映射或字典. P141 JSON.stringify(o);//序列化 JSON.parse(o);//还原 同时使用用于深拷贝 第七章 数组 P146 非负整数索引被当做…
第二章 词法结构 P25 JavaScript是区分大小写的语言:但HTML不区分大小写(XHTML区分大小写,但浏览器具有强大的纠错能力.) 第三章 类型.变量和值 P32 var(variable)变量 P32 对象"命名值"的无序集合:数组是特殊对象--带编号的值的有序集合. P37 NaN和任何值都不相等,包括它本身.应当使用x!=x来判断x是否为NaN,当且仅当x为NaN时,表达式才为true. P37 -0 === +0 //true:1/-0 === 1/+0 //fal…
第九章 类和模块 P235 组合VS子类:组合优于继承 P236 类的层次结构和抽象类 第十章 正则达式的模式匹配 定义 JS中正则表达式用RegExp对象表示.直接量定义为包含在一堆斜杠(/)之间的字符,如: var pattern = /s$/;//匹配所有以s结尾的字符创 //用构造函数RegExp()定义等价于: var pattern = new RegExp("s$"); 直接量字符 字符类 重复 {n,m} //匹配前一项至少n次,但不能超过m次 {n,} //匹配前一项…
本节是javascript语言的一个快速预览,也是本书的第一部分快速预览. 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书.感谢你们无私的分享,仅以此笔记献给你们的辛勤付出. 一:javascript语言核心 本章之后,我们将主要关注javascript的基础知识.第二章我们讲解javascript的注释,分号和unicode字符集:第三章会更有意思,主要讲解javascript的变量和赋值 这里有一些实例代码说明前两章的重点内容. <script type…
使用Firebug和chrome-devToolBar调试页面样式或脚本是前端开发每天必做之事.这个开发神器到底能给我们带来哪些更神奇的帮助呢?这几天看的一些资料中给了我启发,能不通过Firebug和chrome-devToolBar发现JS的全局对象的全部属性呢?能不能发现document对象中含有哪些不常用而又需要深刻理解的属性呢? 我们在此开8! 原创博文,转载请标明出处:http://www.cnblogs.com/dereksunok/p/4884460.html. 一.浅析for-i…
1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到脚本或函数的顶部,但是初始化的操作还是在原来的位置执行. 2.和var声明的变量一样,函数定义语句中的函数(var setVal = function(){...})被显式地“提前”到脚本或函数的顶部. 3.条件语句(分支): (1).if.else匹配规则:else总是和就近的if语句匹配 (2)…
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript程序是用Unicode字符集编写的.至于Unicode字符集,目前虽然查过一些资料,但是至今对UTF-8.UTF-16还是晕菜,也没搞懂一个汉字到底占几个字节的问题,所以这里就不做介绍了(就当埋坑了,以后搞懂了再做介绍吧).至于计算js中一个字符串所在字节数,曾查到如下实现代码: 1 /** 2 *…
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语言之间如何分隔等规则. 1. 字符集 JavaScript程序是使用Unicode(计算机科学领域里的一项业界标准)符集编写的.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言.有关Unicode与JavaScript详解,可以看看大神的文章. 1.1. 区分大小写 JavaScript是区分大小写的语言.也就是说,关键字.变…
1.javascript的数据类型分为两类:原始类型和对象类型. 原始类型包括字符串.数字.布尔值.null.undefined. 对象是属性的集合,每个对象都由“名/值”对构成.数组和函数是特殊的对象. javascript核心定义了三种有用的类:日期类.正则类.错误类. 2.整型直接量: 16进制直接量以“0x”或“0X”开头,如0xff. 8进制直接量以“0”开头,如0377.(注:某些javascript的实现不支持八进制,所以最好不使用) 3.javascript中的算术运算: Mat…
对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; console.log(obj);//{x:5,y:2} 对象最常见的用法是创建.设置.查找.删除.检测.枚举它的属性: (一).创建对象 (1).对象直接量创建 var empty = {}; var point = {x:1, y:2}; var point2 = {x:point.x,y:point.y}…
1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. function test(o) { var i = 0; if(typeof(o) == "object") { var j = 0; for(var k=0; k<10; k++) { console.log(k);//0-9 } console.log(k);//10 } cons…
1.对象名/值得映射 var book={ top:"a", fat:true }   2.访问对象属性 book.top book["fat"] 3.通过赋值创建一个新属性 book.dou="v"; 4.数组 var p=[1,2,3]; p[3]=4;//通过赋值来添加新元素 p[3]=5;//通过赋值来改变已有的元素 5.函数是一种值,可以赋值给变量 var sp=function(x){ return x*x; };    6.按照惯例…
通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性.可配置性. Object.getOwnPropertyDescriptor("p",x);//查询p对象的x属性,返回例如{get:/*func*/,set:undefined,enumerable:true,configurable:true} Object.definedProper…
getter和setter属性: var p = { x:1.0, y:1.0, get r(){ return Math.sqrt(this.x*this.x + this.y * this.y); }, set r(newValue){ var oldValue = Math.sqrt(this.x*this.x + this.y * this.y); var ratio = newValue / oldValue; this.x *= ratio; this.y *= ratio; },…
JavaScript诞生于1995年.它当时的目的是为了验证表单输入的验证.因为在JavaScript 问世之前,表单的验证都是通过服务器端验证.而当时都是电话拨号上网的年代,服务器验证数据是一件非常痛苦的事情. 经过许多年的发展,JavaScript从一个简单的输入验证成为一门强大的编程语言.所以学会使用它是非常简单的,而真正掌握它则需要很漫长的时间. 一.什么是JavaScript  JavaScript是一种具有面向对象能力的.解释型的程序设计语言.更具体一点,它是基于对象和事件驱动并具有…
前言: 对于程序员,学习是无止境的,知识淘换非常快,能够快速稳固掌握一门新技术,是一个程序员应该具备的素质.这里将分享本人一点点不成熟的心得. 了解一门语言,了解它的概念非常重要,但是一些优秀的设计思想需要细心和大量实践才能慢慢参悟,在这之前需要做的是能够运用它来开发,那么了解一些基础特性非常有必要,通常这些特性是需要经验积累,从各种坑中累计出来,但是还有一种看似很笨却很有效的学习方法.那就是将别人的经验记录下来,有事没事都拿出来看看,集合开发中的经验,这会非常有效. 调试工具 firebug…
前端学习 第三弹: JavaScript语言的特性与发展 javascript的缺点 1.没有命名空间,没有多文件的规范,同名函数相互覆盖 导致js的模块化很差 2.标准库很小 3.null和undefined null几乎没有用 不该设计它 4.全局变量难以控制 5.自动插入行尾分号 主要的缺点就是这几个,别的缺点就不一一列举了.... (自习室关门了,待续...)…
# javaScript语言精粹  # 第三章 对象 - javaScript 数据类型     1. 基础数据类型         Number String Boolean Undefined Null Symbol(es6新增,表示独一无二的值)         值不可变         数据存储在栈(stack)区,占据空间小,大小固定,被频繁使用     2. 引用数据类型         Object Function Array          值是可变的         同时保…
写在前面 看到好多书评和读书笔记都说<JavaScript语言精粹>字字珠玑,名不虚传..当然,要看得懂才行 其实个人认为函数化部分不是很好,举的例子不是十分恰当,之前看不懂是因为被成功误导了,就像<Head First>设计模式第一章<策略模式>一样,作者有些偏离章节主题,读者容易被误导 声明:姑且把函数化部分给出的用来创建对象的函数称为“创造函数”吧,为了与“构造函数”区分开..不是很好听,将就着用吧 一.源码中需要注意的点 很容易就能拿到源码,和中文版书上的代码一…
1.1语言核心 --本节主要介绍<js权威指南>基础部分各章讲解内容和一些简单的示例 本小节内容: 一.第二章讲解js注释.分号和Unicode,第三章主要讲解js变量和赋值 简单示例: 1.注释://js中所有在双斜线之后的内容都属于注释. 2.变量:是表示值的一个符号名字  变量是通过var关键字来声明的, var x;  声明一个变量x. 3.数据类型: x=1; //数字 x=0.01 //整数和实数共用一种数据类型 x="hello world" //由双引号内的…
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞生 JavaScript 因为互联网而生,紧跟着浏览器的出现而问世.回顾它的历史,就要从浏览器的历史讲起. 1990年底,欧洲核能研究组织(CERN)科学家 Tim Berners-Lee,在全世界最大的电脑网络——互联网的基础上,发明了万维网(World Wide Web),从此可以在网上浏览网页…
> 本文是我翻译<JavaScript Concurrency>书籍的第一章,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践.完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. JavaScript并不是一门与并发有关联的语言.事实上,…
1.JavaScript简史 Netscape公司决定开发一种客户端语言用来处理浏览器端简单的表单验证. Netscape公司派布兰登·艾奇(BrendanEich)为计划于1995年2月发布的Netscape Navigator 2开发一种叫LiveScript的脚本语言,该语言将同时在浏览器和服务器中使用(在服务器上的名字叫LiveWire). Netscape Navigator 2正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaSc…
一.前言 以下内容均摘自<JavaScript语言精粹>一书,本人在读这本书时,发现作者诠释JavaScript很犀利,特别是数组部分,固记录下来,想和大家分享下. 随笔主要包含两大部分: 1.数组阐述部分: 2.其他片段. 二.JavaScript数组 数组是一段线性分配的内存,它通过整数计算偏移并访问其中的元素.数组是一种性能出色的数据结构.不幸的是,JavaScript没有像此类数组一样的数据结构. 作为替代,JavaScript提供了一种拥有一些类数组(array-like)特性的对象…
函数包含一组语句,用来指定对象的行为,其代码可以用来重复使用.   一般来说,编程就是将一组需求分解成一组函数和数据结构的技能.   概览:函数对象 | 函数字面量 | 调用 | 方法调用模式 | 函数调用模式 | 构造函数调用模式 | Apply 调用模式 | 参数 | 返回 | 异常 | 给基本类型扩展功能 | 递归 | 作用域 | 闭包     4.1. 函数对象   JavaScript 中的函数就是对象.   对象字面量产生的对象连接到 Object.prototype,函数对象连接到…
一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ("onerror" in window) { // window支持onerror } 检测js对象的原型属性(结合hasOwnProperty()函数) if ("attr" in obj && !obj.hasOwnProperty("at…
1.如何插入JS 使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要成对出现,并把JavaScript代码写在<script></script>之间.<script type="text/javascript">表示在<script></script>之间的是文本类型(text),javascript是为了告诉浏览器里面的文本是属于JavaScript语…
一.Javascript概述(知道) a.一种基于对象和事件驱动的脚本语言 b.作用: 给页面添加动态效果 c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt. d.特点: 1). 弱势语言 2). 由浏览器直接解析执行.(函数不能直接执行) 3). 是一个解释性语言 4). 交互性(它可以做的就是信息的动态交互) 5). 安全性(不允许直接访问本地硬盘) 6). 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关 e . javascript和java的…
看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了<dom编程艺术>一直强调的“平稳退化”思想,即如果用户的环境不支持JavaScript,内容将不会折叠.够保证观看到内容. 第一章 DOM1级的目标主要是映射文档的结构 DOM2级在 原来 DOM的基础上又扩充了鼠标和用户界面事件.范围.遍历,而且通过对象接口增加了对 CSS(Cascading St…