《JavaScript高级程序设计》心得笔记-----第一篇章
第一章
JavaScript由ECMAScript、DOM、BOM组成。其中BOM功能在HTML5中有了正式的规范,使BOM的兼容性越来越高。
第二章
1、<script>属性中的async属性是表示应该立即下载版本但是不应该妨碍页面中的其他操作,只对外部文件有效,async="async"。type属性默认text/javascript。defer属性
可以延迟文档完全被解析和现实之后才实现,只对外部文件有效,defer="defer"。
2、在<script>中嵌入javascript中,不可以再任何地方使用</script>,不然会被认为是结束标志,如果非要使用,就要在前面加入转义符号\
3、<script>引用时使用<script />不符合HTML规范,而且不能得到一些浏览器,尤其是IE的正确解析,所以使用<script></script>
4、XHTML代码规范比HTML更加严格,比如a < b,在HTML中可以解析,但是在XHTML中<后面不能跟空格,所以可以使用CData片段,把比较的放在
//<![CDATA[
代码片段
//]]>
5、当浏览器不支持脚本或者浏览器支持脚本,但是脚本被禁用的时候,如果有<noscript>的话,就会执行里面的内容
第三章
1、变量、函数符和操作符区分大小写,第一个字母必须是字母、_、$
2、严格模式:"use strict",整个脚本启用,就放在顶部,在指定函数前使用,就将严格模式放在一个函数里面。在这个模式下,不能定义函数、参数的名字为eval和arguments,不然回导致语法错误
3、数据类型包括:Underfined、Null、Boolean、Number、String,typeof可以返回数据类型,未定义的变量默认取得underfined值,非数值转换成数值可以使用Number()[适用于任何数据类型,空字符返回0], parseFloat()[适用于字符串,22.5->22.5]、parseInt()[适用于字符串,空字符返回NaN,小数点不是有效的数字字符,22.5->22]
4、for-in语句:for(property in expression){代码块}
5、label语句(给代码加标签):label:statement 比如:start:for(var i = 0;i<count;i++){代码块}
第四章
1、只有引用类型值才能添加属性,复制变量值时,新变量受变量的影响,基本类型值不能添加属性,复制变量值时,新变量和变量相互独立
2、 检测引用类型使用instanceof,比如:person instanceof Object
第五章
1、创建Object实例的方式:
(1)先new之后在跟Object的构造函数
var person = new Object(); -----法二:var person = {};
Person.name=”aa”;
Person.age=23;
(2)对象字面量,属性也可使用字符串,属性使用数值的话会自动转为字符串
var person = {
name:”aa”,
age:23
}
2、displayInfo({name:”aa”, age:23})
function displayInfo(args){}
3、 (1)var color = new Array();括号里面可以传数值也可以传字符串,其中new可以省略
(2)数组字面量:var color = [];
4、数组在末尾添加新项:color[color.length] = “red”;
5、检测数组:(1)if(value instanceof Array){对数组执行某些操作}
(2)if(Array.isArray(value)) {对数组执行某些操作}
6、在数组中:
1) toString()可以将每个值得字符串转换为以逗号分隔的字符串,
2) valueOf()可以返回的还是数组
3) join()加入分隔符
4) push()可以接收任意数量的参数,pop()取得最后一项的值
shift()取得第一项的值,unshift()能在数组的前端添加任意个项并返回新数组的长度
5) 重排序:sort() 升序 \ reverse() 降序
6) Concat();可以在原有数组的基础上再创建一个副本,在将接受到的参数添加到副本的末尾。例:
var color = [“blue”,”red”];
var color2=color.concat(“yellow”);// blue,red, yellow
7) slice()能够基于当前的数组中的一或多个项创建一个新的数组。例:slice(1)从位置1开始复制,slice(2,4)从位置2开始复制到3结束,slice(-2,-1)从位置倒2开始复制
8) splice()向数组的中部插入数组,(1)删除:splice(0,2)删除数组前两项
(2)插入:splice(2,0,”red”,”blue”)从当前数组位置2插入字符串
(3)替换:splice(2,1,”red”,”blue”)删除数组位置2的项,再从位置2开始插入字符串
9) 位置方法:(ie9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome)
IndexOf();从开头开始查找
lastIndexOf();从结尾处开始查找
10) 迭代方法:every(),some(),filter(),map(),forEach()
11) 归并方法:reduce();从头到尾 reduceRight();从尾到头
7、Date
1) var date = new Date(Date.parse(“May 21 2016”));
var date = new Date(Date.UTC(2016,2,21,17,31,55));
2) toDateString();显示星期几,月,日,年
toTimeString();显示时分秒和时区
toLocalDateString();以特定于地区的格式显示星期几、月、日和年
toLocalTimeString();以特定于实现的格式显示时分秒和时区
toUTCString();以特定于实现的格式完整的UTC日期
8、正则表达式:(RegExp())
1) g:全局模式 i:不区分大小写 m:多行模式
需要转义的元符号:([{\^$|)?*+.}
2) global:是否设置了g标志
ignoreCase:是否设置了i标志
lastIndex:表示开始搜索下一个匹配项的字符位置,从0开始算起
multiline: 是否设置了m标志
source:正则表达式的字符串表示
3) exec()捕获组的,包含两个额外属性:index和input
4) 正则表达式的构造函数属性:
input($_):最近一次要匹配的字符串
lastMatch($&):最近一次的匹配项
lastParen ($+):最近一次匹配的捕获组
leftContext($`):input字符串中lastMatch之前的文本
multiline($*):布尔值,多行模式
rightContext($’) :input字符串中lastMatch之后的文本
ps:使用短属性的时候要记得加上[],比如:[“$+”]
opera不支持:input、lastMatch、lastParen、multiline
ie不支持:multiline
未完待续。。。
《JavaScript高级程序设计》心得笔记-----第一篇章的更多相关文章
- 《JavaScript高级程序设计》笔记——第一章到第三章
2019年,新年伊始,我打算好好重读一下<JavaScript高级程序设计>这本前端必备经典书.每天半小时. 以下内容摘自<JavaScript高级程序设计> 2019-2-1 ...
- JavaScript高级程序设计学习笔记第一章
作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Inter ...
- JavaScript高级程序设计 读书笔记 第一章
JavaScript是一种专门为与网页交互而设计的脚本语言 JavaScript实现 ECMAscript---核心 DOM---文档对象模型 BOM---浏览器对象模型
- javascript高级程序设计阅读笔记(一)
javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...
- 【javascript学习——《javascript高级程序设计》笔记】DOM操作
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...
- JavaScript高级程序设计---学习笔记(一)
今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...
- javascript高级程序设计学习笔记
javascript高级程序设计,当枕头书已经好久了~zz 现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...
- 《javascript高级程序设计》笔记三
第三章 基本概念 任何语言的核心必然会描述这门语言最基本的工作原理.这部分内容对我们来说,读起来很乏味,甚至会产生困意,但这部分内容却是重要的!我有幸拜读<JavaScript高级程序设计> ...
- Javascript高级程序设计学习笔记一
看完w3school的javascript的概念,有点基础,开始红皮书的路程,今晚总结前二章的心得. 第一章:javascript简介 重点是javascript的实现是由 ECMAScript(核心 ...
随机推荐
- 推荐几个可以与PhoneGap很好搭配的UI框架
- xui.js:可以被视作是jquery在phonegap上的替代品,挺好用的- jq.mobi:同上,不过体积比xui.js要大,一般还是用xui.js- jq.ui:jq.mobi配套的UI框架 ...
- 基于jquery左侧带选项卡切换的焦点图
今天给大家分享一款基于jquery左侧带选项卡切换的焦点图.这款焦点图左侧有短标题,单击切换并显示长标题.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class ...
- 项目源码--Android类似酷狗音乐播放器
下载源码 知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1. 音乐文件 ...
- Linux下mv命令详解
mv命令格式:mv [选项] 源文件或目录 目标文件或目录 mv命令参数(选项): -b :若需覆盖文件,则覆盖前先行备份. -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖: ...
- setsockopt
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO ...
- TCP/IP协议原理与应用笔记26:网际协议(IP)之 分片(Fragmentation)
1. 分片(Fragmentation) 适应在不同的MTU的物理网上传输. 备注: MTU:最大传输单元,Maximum Transmission Unit,它是指一种通信协议的某一层上面所能通过的 ...
- 经典FormsAuthenticationTicket 分析
Asp.net中基于Forms验证的角色验证授权 Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多, ...
- leetcode 题解:Remove Duplicates from Sorted Array(已排序数组去重)
题目: Given a sorted array, remove the duplicates in place such that each element appear only once and ...
- 【MYSQL】数据类型
转载 https://www.baidu.com/s?ie=UTF-8&wd=cnblog 原文 泪云山海的博客 mysql 数据类型 1.整型 MySQL数据类型 含义(有符号) tinyi ...
- Git 对象
Git 提供了很多方法可以方便地访问 Git 库中的对象: ♦ 采用不分的 SHA1 哈希值.不必把 40 位的哈希值写全,只采用开头的部分(4 位以上),只要不与现有的其他哈希值冲突即可. ♦ 使用 ...