《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);
转载于:https://www.cnblogs.com/mryangbo/p/10020563.html
《javascript 高级程序设计》 笔记1 1~7章相关推荐
- JavaScript高级程序设计笔记01 | 第一章到第四章 | 关键字与保留字 | 数据类型 | 操作符 | 作用域
观前提示:大部分都是书上的内容,个人理解的部分的较少,看我的笔记还不如去看书 第二章 async:可选.表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本.只对外部 ...
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
由于JavaScript 变量松散类型的本质,决定了它是在特定时间用于保存特定值的一个名字而已,变量的值及其数据类型可以在脚本的生命周期内改变.这可能既有趣又强大,同时又容易出问题. 4.1 语法 E ...
- Javascript高级程序设计第二版第七章匿名函数--笔记
匿名函数就是没有名字的函数,有时候也称为拉姆达(lambda)函数. function functionName(){}; 这是一个函数声明 在代码执行以前被加载到作用域中 var functionN ...
- JavaScript高级程序设计笔记 - 第四章 变量 作用域 内存问题
4.1 基本类型和引用类型的值 基本类型: 简单的数据段 引用类型: 指那些可能有多个值构成的对象, 指保存在内存中的对象 4.1.2 复制变量值 除了保存的方式不同之外,在从一个变量向另一个变量复制 ...
- JavaScript高级程序设计:6.7.8章阅读札记
第六章 :对象 6.1 对象的属性 对象的属性分为两类:数据属性.访问器属性 A: 数据属性 configurable(能否通过delete删除属性从而重新定义属性) enumerable(是否可通过 ...
- javascript高级程序设计--笔记01
概述 JavaScript的实现包含三个部分: 1 核心(ECMAScript) 提供核心语言功能 2 文档对象模型(DOM) 一套提供了访问以及操作网页内容的API 3 浏览器对象模型( ...
- Javascript高级程序设计第二版第十一章--DOM2,DOM3--笔记
今天跟诸位分享一下,高程,第二版,11章,dom2,dom3 纵观这一章,一个概念,dom在变,现在变,未来变,反正不断的变. 不过变来变去,ie是不支持dom2,dom3,可能未来新版本支持部分do ...
- Java高级程序设计笔记 • 【第6章 设计模式】
全部章节 >>>> 本章目录 6.1 设计模式 6.1.1 设计模式概述和分类 6.1.2 单列模式介绍 6.1.3 单例模式的实现 6.1.4 实践练习 6.2 单例模式 ...
- javascript高级程序设计笔记
1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message="hello world!"; var messageAsBoole ...
- JavaScript高级程序设计笔记 事件冒泡和事件捕获
1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body><div> click me!</div> < ...
最新文章
- 解决Linux CENTOS服务器 tree命令出现乱码 解析原因
- 九款让WordPress成为赚钱利器的广告插件
- 经典C语言程序100例之七八
- 计算机一级在线解析,2016年计算机一级试题及答案解析
- LINQ-to-SQL那点事~耳目一新的partial class 和 partial method
- 机械专业中的计算机应用系统,计算机在机械行业中的应用
- 2022年制造业单项冠军行业研究报告
- nserror 自定义错误_iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂...
- ipv4v6双栈技术_什么是IPv6双栈技术
- 【刷题】清橙 A1339 JZPLCM(顾昱洲)
- 群晖docker实现IPV6访问
- android官方模拟器下载安装,网易MuMu模拟器
- 模拟鼠标键盘操作,含硬件模拟技术。
- 猫狗图像识别(卷积神经网络算法,TensorFlow安装)
- 09组团队项目-Beta冲刺-2/5
- 获取IE浏览器版本号
- Ubuntu下如何查看已安装软件版本
- 数学物理不好适合学计算机科学与技术吗,数学不好最好不要报这些专业
- 关于计算机网络,你需要知道的一些常识
- Spring boot系统拦截处理异常调转404/500页面
热门文章
- 在Linux系统里安装Virtual Box的详细步骤 1
- mysql数据库财务_MySQL数据库——从入门到删库跑路(二)
- 二维碰撞检测matlab,二维平面内的碰撞检测【二】
- 树状数组基础原理与模板
- 雷蛇鼠标宏文件_《硬事要说34》稳接曼巴的旗?雷蛇巴塞利斯蛇[终极版]解读...
- 对称二叉树Python解法
- java判断字符串是什么编码_java可供判断某字符串是什么编码的一行代码
- windowopen传值到jsp_window.open()使用方法以及传参数的问题总结
- python安装库失败cannot determine archive_pip 无法安装 pip
- python 列表推导_说说在 Python 中如何使用列表推导