《javascript 高级程序设计》 笔记1 1~7章
chapter 2 在html中使用JavaScript

chapter 3 基本概念
EMCAscript 语法
变量,函数名和操作符都区分大小写。
使用var定义的变量将成为定义该变量的作用域中的局部变量;
省略var定义变量 就成了全局变量;
数据类型:
- Undefined 变量定义后未初始化;只有一个值undefined
- Null 只有一个值null;
- Boolean 值为true 或 false
- Number
- String
- Object
Number 类型:
NaN类型,即非数值(Not a Number),和任何值(包括它自己)都不相等;

调用isNaN方法时,对象先调用valueof()再调用toString(),再对结果进行判断;
常用数值转换函数:Number(),parseInt(),parseFloat(),括号内放入参数;
操作符:
一元操作符,前置和后置++、--;
前置:

后置:num=age++,age先执行num=age再自增;

全等和不全等
全等===,在两个操作数未经转换就相等的情况下返回true;
不全等!==,在两个操作数未经转换就不相等的情况下返回true;
语句
for-in ,迭代语句;
for(var propName in window){
document.write(propName);
}
label 语句(标签语句,格式 label:statement);
start: for(var i=0;i<12;i++){
document.write("i="+i+"<br>");
for(var j=12;j>0;j--){
document.write("j="+j+"<br>");
if(j<=i){
break start; //直接跳出外层循环;
}
}
}
函数
定义:
function functionName(arg0,arg1,......,argN){
statements
}
chapter 4 变量、作用域和内存问题
基本类型和引用类型值
基本类型值指的是简单的数据段,引用类型值指那些有多个值构成的对象。引用类型的值是保存在内存中的对象。
使用typeof 检测基本数据类型,使用instanceof 检测引用类型。
执行环境和作用域
没有块级作用域
if(true){
var color="blue";
}
for(var i=0;i<10;i++){
}
alert(color+i);
如果初始化没有使用var 声明,该变量会自动被添加到全局环境中。
查询标识符:搜索过程从作用链的前段开始,向上逐级查询与给定名字匹配的标识符。除非直接获取window.color,获得全局变量。


垃圾收集
- 标记清除
- 引用计数
chapter 5 引用类型
栈方法:

Function 类型

函数名类似于指针,所以函数没有重载的概念。同名的函数,后声明的函数会覆盖之前同名的函数。

函数的属性和方法
函数就是对象,因此有属性和方法。
属性:
- length 函数接受参数的个数
- prototype
基本包装类型

单体内置对象
Global对象

1.URI 编码和解码方法
2.eval() 方法
eval 方法,接收一个参数,该参数会被当做js解析,且与方法外执行环境有相同的作用域。
3.window对象
web浏览器将Global对象功能归附于window对象来实现(window不仅拥有Global功能还承担了其他的任务)。在全局作用域中声明的所有变量和函数,都成为window对象的属性。
获取global对象的另一种方式:
j=1;
var global=function(){
return this;
}();
alert("global.j="+global.j);
Math 对象
max(),min()
var arrays=[1,2,3,4,5];
var max=Math.max.apply{Math,arrays};//获取数组的最大元素
Math.ceil(n); 向上舍入
Math.round(n); 标准四舍五入
Math.floor(n); 向下舍入
chapter 7 函数表达式
递归
使用arguments.callee,是一个指向正在执行的函数的指针,可以用来实现对函数的递归调用。
function factorial(num){
if(num<=1){
return 1;
}else{
return num+"*"+arguments.callee(num-1);
}
}
var string = factorial(10);
alert(string);//弹出阶乘表达式
模仿块级作用域
javascript 没有块级作用域的概念。
function outputNumbers(count){
for(var i=0;i<count;i++){
document.write(i);
}
document.write("<br>");
alert(i);
}
outputNumbers(10);
《javascript 高级程序设计》 笔记1 1~7章的更多相关文章
- Javascript高级程序设计笔记 <第五章> 引用类型
一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...
- JavaScript高级程序设计:第十四章
第十四章 一.表单的基础知识 在HTML中,表单是由<form>元素来表示的,而在javascript中,表单对应的则是HTMLFormElement类型.HTMLFormElement继 ...
- JavaScript高级程序设计:第十二章
DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3级则在这个结构的基础上引入了更多的交互能力,也支持了更高级的XML特性.为此DOM2和DOM3级分为许多模块,这些模块如下: D ...
- JavaScript高级程序设计笔记(一)
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...
- JavaScript高级程序设计笔记之面向对象
说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...
- javascript高级程序设计--笔记01
概述 JavaScript的实现包含三个部分: 1 核心(ECMAScript) 提供核心语言功能 2 文档对象模型(DOM) 一套提供了访问以及操作网页内容的API 3 浏览器对象模型( ...
- javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记
1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...
- Java高级程序设计笔记 • 【第6章 设计模式】
全部章节 >>>> 本章目录 6.1 设计模式 6.1.1 设计模式概述和分类 6.1.2 单列模式介绍 6.1.3 单例模式的实现 6.1.4 实践练习 6.2 单例模式 ...
- Java高级程序设计笔记 • 【第5章 XML解析】
全部章节 >>>> 本章目录 5.1 XML 文档概述 5.1.1 XML文档结构 5.1.1 XML结构说明 5.1.1 XML文档元素 5.1.2 XML文档语法规范 ...
- Java高级程序设计笔记 • 【第4章 网络编程】
全部章节 >>>> 本章目录 4.1 网络基础知识 4.1.1 IP地址 4.1.2 端口号 4.1.3 使用InetAddress 4.1.4 InetAddress 类 ...
随机推荐
- 解决阿里云下server 2008中tomcat不能外网访问
1. 首先这台服务器是别人给到手的服务器, 所有环境跟我讲是全新的, 然后我开始配置tomcat; 开始安装sql 2008 r22. r1安装好之后, 本机内部怎么访问都行( . 和 127.0.0 ...
- python--open用法
open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 如:' ...
- 完美解决HALCON C#编程目标平台冲突问题
完美解决HALCON C#编程目标平台冲突问题 楼主# 更多发布于:2016-11-23 10:06 背景: 目标机器工控机使用11.0.1 32位Halcon 原因你懂的.开发环境Win ...
- Python基础学习四 函数
1.内置函数 Python内置了很多有用的函数,是可以直接调用的. 参考链接:https://docs.python.org/3/library/functions.html 调用函数的时候,如果传入 ...
- vmware 仅主机模式 ip配置
首先关闭防火墙 主机(宿主机器 win7) 虚拟机(xp) 3..重要提示: 如果ping不通首先考虑防火墙的问题!!! vmware配置: nat模式下玩耍: 1. 配置nat的虚拟网卡: 2. ...
- 关于微信公众号内嵌网页的几个meta标签
最近在做微信公众平台内嵌app,其实也就是web app="=,不过就是基于微信内置浏览器(safari加了一个WeixinJS对象),稍微记一下几个html的meta标签(web app通 ...
- AngularJS学习(一)
参考文章:http://blog.csdn.net/dc_726/article/details/17010325 1.HelloWorld篇 1.1 环境 下载:angular-1.2.5min.j ...
- interface vs abstract
[interface vs abstract] 1.interface中的方法不能用public.abstract修饰,interface中的方法只包括signature. 2.一个类只能继承一个ab ...
- zookeeper java api(使用java代码操作zookeeper)
1 导入相关的pom依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId&g ...
- Nginx Rewrite研究笔记
原文出自:http://blog.cafeneko.info/2010/10/nginx_rewrite_note/ 在新主机的迁移过程中,最大的困难就是WP permalink rewrite的设置 ...