chapter 2 在html中使用JavaScript

chapter 3 基本概念

EMCAscript 语法

变量,函数名和操作符都区分大小写。

使用var定义的变量将成为定义该变量的作用域中的局部变量;

省略var定义变量 就成了全局变量;

数据类型:

  1. Undefined 变量定义后未初始化;只有一个值undefined
  2. Null 只有一个值null;
  3. Boolean 值为true 或 false
  4. Number
  5. String
  6. 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,获得全局变量。

垃圾收集

  1. 标记清除
  2. 引用计数

chapter 5 引用类型

栈方法:

Function 类型

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

函数的属性和方法

函数就是对象,因此有属性和方法。

属性:

  1. length 函数接受参数的个数
  2. 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章的更多相关文章

  1. Javascript高级程序设计笔记 <第五章> 引用类型

    一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...

  2. JavaScript高级程序设计:第十四章

    第十四章 一.表单的基础知识 在HTML中,表单是由<form>元素来表示的,而在javascript中,表单对应的则是HTMLFormElement类型.HTMLFormElement继 ...

  3. JavaScript高级程序设计:第十二章

    DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3级则在这个结构的基础上引入了更多的交互能力,也支持了更高级的XML特性.为此DOM2和DOM3级分为许多模块,这些模块如下: D ...

  4. JavaScript高级程序设计笔记(一)

    ---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...

  5. JavaScript高级程序设计笔记之面向对象

    说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...

  6. javascript高级程序设计--笔记01

    概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型( ...

  7. javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记

    1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...

  8. Java高级程序设计笔记 • 【第6章 设计模式】

    全部章节   >>>> 本章目录 6.1 设计模式 6.1.1 设计模式概述和分类 6.1.2 单列模式介绍 6.1.3 单例模式的实现 6.1.4 实践练习 6.2 单例模式 ...

  9. Java高级程序设计笔记 • 【第5章 XML解析】

    全部章节   >>>> 本章目录 5.1 XML 文档概述 5.1.1 XML文档结构 5.1.1 XML结构说明 5.1.1 XML文档元素 5.1.2 XML文档语法规范 ...

  10. Java高级程序设计笔记 • 【第4章 网络编程】

    全部章节   >>>> 本章目录 4.1 网络基础知识 4.1.1 IP地址 4.1.2 端口号 4.1.3 使用InetAddress 4.1.4 InetAddress 类 ...

随机推荐

  1. tomcat 1字节的UTF-8序列的字节1无效

    微信支付时, 命名返回支付成功, 但是成功后却返回如下的错误, 在测试环境都是没有任何问题, 到客户现场后, 可能客户现场使用的4G网络, 用微信支付时一直报这样的错误 错误现象: com.sun.o ...

  2. 搭建Easyui环境在Myeclipse或Eclipse中

    转自:https://www.cnblogs.com/henuyuxiang/p/4283018.html 1.下载Easyui.网址:http://www.jeasyui.com/download/ ...

  3. 每天一个Linux命令 - 【groupadd】

    [命令]:grouadd [语法]:groupadd [选项]   [参数] [功能介绍]:groupadd 命令勇于创建新的工作组,新工作组的信息将被添加的系统文件中. [选项说明]: -g < ...

  4. 微信小程序中出现Invoking Page() in async task.问题

    在做项目中需要让页面跳到外网,用到了<web-view src=""> </web-view>组件,需要新建一个文件放这个组件,调接口的时候链接连到这个页面 ...

  5. Linux的基本指令--目录和文件和文件属性和文件用户组

    目录和文件 一 .  ls:列出目录的内容,未给出目录名或是文件名时,就显示当前目录的信息. -a 列出隐藏文件,文件中以”.”开头的均为隐藏文件,如:~/.bashrc  -l 列出文件的详细信息 ...

  6. UIThread

    功能如下:点击Create则新创建一个窗口 一 . 资源中添加对话框,右键添加类MyDlg 双击初始对话框中的按钮,实现按钮功能:点击则创建一个对话框 CMyDialog* pDialog = new ...

  7. 客户端级别的渲染分析工具 dynaTrace

    dynaTrace Ajax Edition是一款很好的javaScript性能分析工具.目前支持IE和Firefox 2款浏览器. dynaTrace如图所示: 点击Click here to st ...

  8. centos 搭建docker环境

    我有一台便宜的腾讯云服务器,当然配置自然也是最低的,只是用来平常玩一玩,学习的用处,下面介绍一下我在上面搭建docker的心得,共勉一下. 安装与配置 Docker 安装 Docker Docker ...

  9. 557. Reverse Words in a String III 翻转句子中的每一个单词

    [抄题]: Given a string, you need to reverse the order of characters in each word within a sentence whi ...

  10. SQL数据库游标

    这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标--(1)定义游标- ...