阅读摘录《javascript 高级程序设计》01

  



前言:

    因为工作需要,所以开始主攻前台JS方面的技术。在以前的工作中,使用过这门脚本语言。但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用。

    不会考虑到代码优化,封装对象等。今次特意借了这本《javascript 高级程序设计》 ,在每个晚上抽出一个小时来看这本纸质书,系统的学习这门语言。

    本文中摘录的都是一些在阅读中,感觉比较重要的信息。如果文中出现差错,欢迎园友拍砖。 



摘录:    

数据类型

undefined  使用var声明 但未对其初始化

Null null值

Boolean  布尔型

Number 整数 浮点  parseInt("10",2)  parseFloat

String  字符串   toString()

Object 对象 :

构造函数  new Object()

hasOwnProperty(propertyName) 实例中是否有给定的属性

isPrototypeof(object) 传入对象是否是另一个对象的原型

propertyIsEnumerable

toString()

valueof()

/////////////////////////////////////////////////////////////

typeof() 函数结果(undefined boolean  string  number object function)

操作符

for-in:精确迭代语句,枚举对象属性

for(var propName in object){

alert(propName):

}

函数

参数名:非必须 有内置参数数组 arguments

function say(){

alert(argumenyt[0+" "+argument[1]);

}

say("jon","22");

变量 作用域和内存

基本类型:保存在栈内存的简单数据段,该值被完全保存在内存中       typeof()

引用类型:堆内存中的对象,变量中保存的只是指针 指向该内存中的值   object instanceof array

垃圾回收机制

标记清除

引用计数

引用类型

var person = new Object()

person.name = "lili";

person.age="12";

var person = {name:"lili",agr:12 };

array类型

var color = new Array(3); //创建出长度为3 的数组

var color = new Array("red","yellow","blue");

var color = ["red","yellow","blue"];

数组下的toString()  toLocaleString()  该两个方法默认会调用数组下每项的toString()方法

若toLocaleString()被重写,则调用重写后的toLocaleString()

数组下的push() 及pop()方法。

push() 将项推入数组中,并返回数组的count

pop() 取到数组的最后一项  count值被减少

数组重排序reserse() sort()

reserse()  将数组进行反转

sort() 调用每项的toString()方法  然后按照升序排列数组

concat()  将数组进行合并

引用类型:函数内部属性

函数内部有两个特殊对象 arguments 和 this

arguments 包含了函数中所有的传入参数,该对象包含了callee属性,指向拥有arguments的函数

例如例子

function as(num){

if(num>1){

as(num -1);

}else{

break;

}

}

可消除函数体与函数名的耦合度

function as(num){

if(num>1){

arguments.callee(num -1);

}else{

break;

}

}

this 引用的是函数据以执行操作的对象 或者说函数在执行时的作用域

window.color = "red";

var o = {color:"blue"};

function sayColor(){

alert(this.color);

}

sayColor();  red

o.sayColor = sayColor;

o.sayColor();  blue

函数属性和方法

ECMAscript 中的函数也是对象  因此函数也有属性和方法

每个函数包含了两个属性

length:函数希望接受的命名参数的个数

prototype:

函数自带两个方法,可在特定作用域中调用函数

apply() :需要传入两个参数; 一个是函数运行的作用域。 另一个是传入参数的数组(or array or arguments对象)

call(); 一个是函数运行的作用域  而后剩下的参数是必须一一列举

此二者方法可以相同效果 可以根据实际参数来选择调用

而通过该函数的调用 可以扩充函数运行的作用域.实际上函数改变了this的值

window.color = "red";
   
    var o = {color :"blue"};
   
    function sayColor(){
   
           alert(this.color);
    }
   
   
    sayColor();   //red
   
    sayColor.call(this); //red  
   
    sayColor.call(window); //red
   
    sayColor.call(o); //blue

内置对象

global对象 作为ECMAScript的终极对象,从任何角度看 都不存在。但是不属于任何其他对象的属性和方法  最终都是它的属性和方法
   
    isNaN()  isFinite()  parseInt()  parseFloat()
   
    1. 编码方法  
   
         encodeURI()   不会对本身属于URI的特殊字符进行编码

encodeURIComponent() 会将对应编码替换所有非字母数字字符

2.eval() 执行ECMAScript字符串

eval("alert(‘hi‘)");  等价于 alert(‘hi‘)

当解析器发现调用eval() 方法时 会将传入的参数 当成ECMAScript来解析 然后将执行结果插入到原位置

通过eval()执行的代码被认为是包含该次调用的执行环境的一部分,因为有执行环境相同的作用域。


阅读摘录《javascript 高级程序设计》01,布布扣,bubuko.com

时间: 2024-08-02 06:44:05

阅读摘录《javascript 高级程序设计》01的相关文章

JavaScript高级程序设计--01

第一章 JavaSript概论 1.什么是JavaScript. 具有面向对象能力的,解释型的程序设计语言. 2.JavaScript的特点. 松散性 对象属性 继承机制(基于原型) 3.JavaScript核心 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) 第二章 使用JavaScript 1.创建一张HTML页面 <!DOCTYPE HTML> <html lang="en"> <head> <meta c

《Javascript高级程序设计》阅读记录(四):第五章 下

这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核心内容. 绿色背景的内容是我认为比较值得注意的原著内容. 黄色背景的内容是我认为非常重要的原著内容. 我的理解会用蓝色的字体标示出来. 这章的内容较多,而且比较重要,分两篇

《Javascript高级程序设计》阅读记录(二):第四章

这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核心内容. 绿色背景的内容是我认为比较值得注意的原著内容.

《Javascript高级程序设计》阅读记录(三):第五章 上

这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核

《Javascript高级程序设计》学习记录(一)

最近又开始重新阅读<javascript高级程序设计>了,记忆中这是第三次了,但是前面都是走马观花式的过了,这次还是需要好好整理和实践一番了. 虽然是一些基础概念,但是还是有好多容易注意的地方,不知道它的玄机还有这么多,特在此记录一下,防止自己忘记,同时也能增加自己的理解 (1)javascript中共有5种简单的数据类型:Undefined,Null,Boolean,Number,String,一种复杂的数据类型Object (2)typeof操作符 在javascript中,typeof和

《JavaScript高级程序设计》读书笔记--前言

起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的javascript书籍和推荐的阅读顺序,如下所示: 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,

javascript高级程序设计阅读笔记(一)

javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 文档对象模型 DOM doc

赠书《JavaScript高级程序设计(第三版)》5本

本站微博上正在送书<JavaScript高级程序设计>走过路过的不要错过,参与方式,关注本站及简寻网+转发微博:http://weibo.com/1748018491/DoCtp6B8r 本站联合简寻网#寻找千里码# 正在送书<javascript高级程序设计>第三版 5本,对这本书期待的朋友可以去参与哦. 关于简寻网: 我们是一群年轻的创业者,我们关注互联网发展,追逐技术的进步.互联网时代的到来,我们希望能通过技术的手段解决生活中的问题.招聘行业是一个传统而又新兴的行业,传统的流

javascript高级程序设计——笔记

javascript高级程序设计--笔记 基本概念 基本数据类型包括Undefined/Null/Boolean/Number和String 无须指定函数的返回值,实际上,未指定返回值的函数返回的是一个特殊的undefined值 变量.作用域和内存问题 基本类型值在内存中占据固定大小的空间,因此保存在栈内存中 引用类型的值是对象,保存在堆内存中 确定一个值是哪种基本类型用typeof,确定一个值是哪种引用用instanceof 所有变量都存在于一个执行环境当中,这个执行环境决定了变量的生命周期,