javaScript高级程序设计第3版笔记
<script src = "xxx.js" defer = "defer"> </script>
在引用外部script时,<script src = "">内部不能再有代码,浏览器只加载外部文件</script>
defer 属性只实用于外部js引用情景;属性功能指定下载js代码,直到加载完页面内容才加载js文件;
变量作用域

- A只能访问a
- B只能访问a, b
- C只能访问a, b, c
- D只能访问a, d
在javaScript中没有块作用域,只有函数作用域
for(var i = 0; i < 10; i++)
{
......
};
alret(i); // i = 9;//i的作用域属于上层作用域;
用var 申明的变量会自动放入最接近的作用域中(所在函数内部),而未使用var申明的变量.都是全局变量
人为约定作用域
通过匿名函数间接约定作用域
(function(){
.................
})();
var sum = 0;
(function(){
for(var i = 0; i < 10; i++)
{
sum += i;
}
})();
alert(sum + i);
会提示i未定义的错误;
数据类型
基本类型(undefined, Null, Boolean, Number, String)
引用类型(Object, Array, Date, RegExp, Function, )
var obj = new Object();
var arr = new Array();
var arr = new Array(5); //分配长度
var arr = new Array("init", "init1"); //创建并初始化
var time = new Date(); //返回当前系统时间
var re = new RegExp(); //正则表达式类型
Math对象
Math.PI //派的值
Math.max("5", "4", "8", "...");//返回最大值(可以理解为静态成员方法)
Math.min("...");//返回最大值
对象
Object.defineProperty(obj, "name", {
writable: false,
value: " bokeyuan"
});
Object.defineProperty(); //静态成员函数,用来指定成员属性类型
- 第一个参数为,需要设定的对象
- 第二个参数为,对象属性名;
- 第三个对象为,对象属性类型设置
可设置的类型
- [configurable] //能否通过delete删除属性,默认true
- [enumerable] //能否通过for-in 循环返回属性默认true
- [writable] //能否修改属性值 默认true
- [value] //读取属性值时从位置读;写入值时,放入此位置,默认undefined;
创建对象
工厂模式(函数调用模式)
function getObj(name, face, toll)
{
var obj = new Object();
obj.name = name;
obj.face = face;
obj.toll = toll;
//成员方法
function ta()
{
return face + toll;
}
....
return obj;
}
var a1 = getObj("...","...","... ");
var a2 = getObj("...","...","... ");
构造函数模式(函数对象等效模式)
function getObj(name, age, time)
{
this.name = name;
this.age = age;
this.time = time;
function t()
{
return this.time++;
}
}
var obj = new getObj("..", "..", "..");
原型模式(全局初始化模式)
function getObj()
{
getObj.prototype.name = "...";
getObj.prototype.age = ....;
getObj.prototype.time = ....;
function x()
{
.....
}
}
var obj = new getObj();
组合使用构造函数模式和原型模式(默认全局初始化模式)
function getObj(name, age, time)
{
this.name = name;
this.age = age;
this.time =time;
function tt()
{
......
}
}
动态原型模式
寄生构造函数模式
稳妥构造函数模式
继承
原型链
借用构造函数
组合继承
原型式继承
寄生式继承
寄生组合式继承
函数表达式
常规定义
function f()
{
............
}
匿名函数
var f = function()
{
............
}
闭包
完全错误的一个章//

css模块选择器定位元素
通过document或element的querySelector方法选择指定元素对象;
通过element选择指定元素对象;
var a1 = document.querySelector("head");
通过id xxx选择元素对象;
var a2 = document.querySelector("#xxx");
通过class名选择元素对象;
var a3 = document.querySelector(".classname"); //选择的是该classname的第一个元素对象;
通过document或element的querySelectorAll()方法选择指定元素所有对象返回保存数组中;//等效于getElementByTarName();
var arr = document.querySelectorAll(".....");
取出元素对象
for(var i = 0; i < arr.length(); i++)
{
arr[i]; //或用arr.item(i);
}
元素遍历
.childElementCount属性返回子元素个数;不包括(文本,注释)
.fristElementChild返回第一个子元素 //等效于fristChild(前者兼容性更好)
.lastElementChild返回最后一个子元素 //等效于lastChild(前者兼容性更好)
.nextElementSibling 同级元素下一个
.previousElementSibling 同级元素上一个
HTML5
焦点管理
document.activeElement//返回文档得到了焦点的元素
document.hasFocus();判断文档是否得到了焦点
document.readyState 判断文档加载状态.类似于load
document.readyState == "loading" //加载中...
document.readyState == "complete" //加载完
document.charset = "UTF-8";设置字符集属性
自定义数据属性
通过data- 可以自定义属性
<div id = "xxx" data-appid = "xxx">
取得或设置自定义属性
element.dataset.appid = "xxxx";
javaScript高级程序设计第3版笔记的更多相关文章
- Javascript高级程序设计第三版-笔记
1.JS数值最大值最小值: >Number.MIN_VALUE <5e-324 >Number.MAX_VALUE <1.7976931348623157e+308 判断数值是 ...
- JavaScript高级程序设计第三版.CHM【带实例】
从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...
- JavaScript 高级程序设计 (第4版) 思维导图/脑图 All In One
JavaScript 高级程序设计 (第4版) 思维导图/脑图 All In One JavaScript 高级程序设计 (第4版) 思维导图下载 JavaScript 高级程序设计 (第4版) 脑图 ...
- 《JavaScript高级程序设计》(第二版)
这本书的作者是 Nicholas C.Zakas ,博客地址是 http://www.nczonline.net/ ,大家可以去多关注,雅虎的前端工程师,是YUI的代码贡献者,可想而知这本书得含金量, ...
- 【读书笔记】读《JavaScript高级程序设计-第2版》 - 非函数部分
章节列表: 第08章:BOM 第09章:客户端检测 第10章:DOM 第11章:DOM2和DOM3 第12章:事件 第13章:表单脚本 第14章:错误处理与调试 第17章:Ajax和JSON第20章: ...
- JavaScript高级程序设计第三版学习笔记(一)之数据类型区分详谈
null.NaN.undefined三者的区别是什么? 在初次接触到JavaScript的时候,傻傻的分不清null.NaN.undefined三者到底区别何在,在实际的项目开发中也因为这个问题而困惑 ...
- JavaScript高级程序设计第三版-读书笔记(1-3章)
这是我第一次用markdown,也是我第一次在网上记录我自己的学习过程. 第一章 JavaScript主要由以下三个不同的部分构成 ECMAScript 提供核心语言功能 DOM 提供访问 ...
- 【读书笔记】读《JavaScript高级程序设计-第2版》 - 函数部分
1. 定义 函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 对于函数 ...
- 《JavaScript高级程序设计 第3版》-学习笔记-2
P31-P82页 1.相等不相等与全等不全等 相等不相等:先转换后比较.对于只有一个对象,调用valueOf方法得到基本类型值再按基本类型转换:如果两个都是对象,则比较他们是否是同一个对象(引用或指针 ...
随机推荐
- 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2018)
layout: post title: 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 201 ...
- phpQuery简介
接上一篇,使用 Snoopy 抓取回来网页之后,需要解析网页中的元素,但是对于 https://www.cnblogs.com/hellowzd/p/5163276.html
- T100——取得系统参数值,如关帐日期
CALL cl_get_para(g_enterprise,g_site,'S-MFG-0031') RETURNING l_para_data 用此方法获取关帐日期
- Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?
Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用? 2019年07月06日 19:30:55 AI科技大本营 阅读数 675 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- Fabric的简介
1,初识fabric 1,什么是fabric fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理的效率. 简单来说: (1)一个让你通过命令行执行无参数python ...
- jvm调试相关:jmap失效下找到alternatives神器
1.使用 jmap <pid>出现的错误日志:很明显是版本问题 Error attaching to process: sun.jvm.hotspot.runtime.VMVersionM ...
- 清除vs2005、vs2008起始页最近打开项目
有时候vs2005起始最近打开项目过多很想清除掉,但打遍了也没找到清除选项在哪里,今天找到了方法,发上来和大家共享. 方法一手工操作方法:1)删除最近打开的文件运行regedit,打开HKEY_CUR ...
- CentOS6.8安装Python3.6.3
1.linux下安装python3 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum install zlib-devel bzip2-devel ...
- 基于光线追踪的渲染中景深(Depth of field)效果的实现
图形学离线渲染中常用的透视摄像机模型时根据小孔成像的原理建立的,其实现通常是从向成像平面上发射ray,并把trace这条ray的结果作为成像平面上对应交点的采样结果.即: 图片来自<Fundam ...
- element-ui中点击菜单,改变当前菜单背景颜色
需求: vue项目中,点击左侧菜单,tags页显示当前打开的菜单,并且高亮显示当前菜单 实现效果: 实现代码:在vuex里面定义tags存放所有打开的菜单,和当前打开的索引curtagsIndex:, ...