`

犀牛书 & JavaScript Web Applications notes

    博客分类:
  • js
 
阅读更多

https://www.evernote.com/shard/s20/sh/83c1aced-abdf-4866-a6a1-8f247815b5c2/eec821d6a4fb9940ff7deea4c190d713

 

 

 

 

数字类型是浮点型

 

常规数组用 数字 做下标

 

关联数组用 字符串 做下标

 

 

 

image.width  也可以  image["width"]

 

 //第2种方法[]里面是个字符串  这个就有很大的灵活性  因为可以放一个字符串变量  在运行时决定真正要读的属性

 

 //字符串是动态的  属性标示符是静态的

 

 //第2种方法把对象叫关联数组 实际在js内部是用关联数组实现对象的

 

 

 

var a =  new Array();

 

a[0] = 1.2;

 

a[1] = true;

 

//数组可变长度?

 

 

 

 

 

 

 

 

 

对基本类型的自动包装   Number  String Boolean

 

 

 

js函数体代码执行时会首先扫描所有变量定义  然后才处理代码逻辑

 

var scope = "global";

 

function f(){

 

     alert(scope);    //显示undefined  因为首先扫描到局部定义   把全局的屏蔽了  但此时赋值的代码又未执行

 

     var scope = "local";

 

     alert(scope);

 

}

 

 

 

in 运算符  

 

  左边的是一个字符串 右边的是一个对象或数组  如果左边的值是右边的一个属性名, 返回true

 

 "name"  in  {name:1,age:23}     // true

 

 

 

 

 

instanceof 运算符

 

  d instanceof Date  // 左边是对象   右边是类名

 

 

 

typeof 运算符

 

  返回 number  string  boolean  object   function  undefined

 

 

 

delete 运算符

 

  删除属性引用?

 

 

 

 

 

对象属性的枚举

 

for (var pname in myobject){

 

}  //pname 是属性名  myobject[pname] 是 属性值

 

 

 

 

 

函数定义在解析时发生,不是在运行时发生

 

 

 

with (object)

 

     statement  //把object 加到作用域链的头部

 

 

 

 

 

函数的实际参数  arguments[]对象

 

     调用函数时可以传超过定义的参数个数  然后访问arguments[]去获取

 

 

 

函数内参数 callee   

 

      //引用函数自身  可以方便的拿到未命名的函数引用

 

 

 

 

 

arguments.length 是实参的数目   Function.length 是形参的数目

 

     var actual = args.length;

 

     var expected = args.callee.length;

 

 

 

 

 

call()

 

     f.call(o,1,2);

 

     o.m = f;

 

     o.m(1,2);

 

     delete o.m;

 

 

 

apply() 和 call相似  只不过参数是数组    f.apply(o,[1,2]);

 

 

 

 //为什么要这样?

 

 //对象上的函数叫方法  方法和普通函数有一个区别  this关键字的指向  在方法中this指向对象    所以o.m=f后    如果f中有代码this的话  这时this就指向o了

 

 //而普通函数中的this指向的是全局对象      this的指向是函数和方法的主要区别

 

 Use .bind() when you want that function to later be called with a certain context, useful in events. Use .call() or .apply() when you want to invoke the funciton immediately, and modify the context.

Call/apply call the function immediately, whereas bind returns a function that when later executed will have the correct context set for calling the original function. This way you can maintain context in async callbacks, and events.

 

 

 

prototype

 

  原型对象   原型对象属性读的时候, 如果实例没有,就会去原型上读,(大大减少每个对象对内存的需求量)但如果写入的话,是会在实例上创建一个并写在实例上的,并以后读该属性都是在实例上读了

 

 

 

constructor  

 

     //指向构造函数   这个属性是从原型继承而来 即此属性在原型上 假如原型被替换成其他对象  那个对象不一定有constructor属性

 

     var o = new Complex(1,2);

 

     o.constructor == Complex  // true

 

     f.prototype.constructor == f //true

 

 

 

hasOwnProperty()

 

 判断一个属性是否挂在对象本身上的 挂在原型上是false  假如找不到也是false    o.hasOwnProperty("name")

 

 

 

isPrototypeOf()

 

     Object.prototype.isPrototypeOf(o)   //true

 

 

 

 

 

 

 

数组不过是一个具有额外功能层的对象

 

 

 

js数组是稀疏的 数组下标不会落在一个连续的数字范围内 

 

var c = new Circle();

 

c[0] = "xxxx";    //只是添加了一个名为0的属性  将数组元素添加到对象不会使他成为数组

 

 

 

数组的length总是比最大元素的下标多1  即使在稀疏的情况下

 

     length值可写  设置一个比实际小的数   数组会被截断 长度之外的元素会被抛弃

 

     一般的对象没有length属性  length属性成了数组最重要的特性

 

 

 

   join()  数组的元素转换成字符串,用逗号分隔符连起来 

 

     a = [1,2,3]   a.join() // "1,2,3"   a.join(",")  //"1, 2, 3" 后面的有空格

 

 

 

   reverse()   翻转整个数组

 

 

 

 

 

 

 

window == this // true  window就是顶级全局对象

 

document == window.document  //true

 

 

 

 

 

navigator 

 

     包含web浏览器的总体信息   // for(var p in navigator) document.write(p+":"+navigator[p]+"<br>");

 

 

 

document

 

     //for(var p in document) document.write(p+":"+document[p]+"<br>");

 

 

 

 

 

cookie

 

     name=value;path=path;domain=domain;expires=expires;secure=secure;

 

 

 

     expires 生存周期

 

     path  cookie可见性 只对path的同一目录或子目录的页面可见

 

     domain  跨域 访问   不能将一个cookies域设置成服务器所在的域之外的域

 

     secure   是否只在https时才传输cookies

 

     不能有分号  逗号  空白符  所以存时要escape() 读的时候unescape()

 

 

 

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
 
// Static functions are added directly on the class
Person.find = function(id){ /* ... */ };
 
 
// Instance functions are on the prototype
Person.prototype.save = function(){ /* ... */ };    //用这种方法添加实例方法只会创建方法一次
 
//下面这种每次new Person的时候都会创建一次add方法
function Person(){
    this.add = function () {
      …...
    }
}
 
 
 
 
 
 
event
     type //click   mouseover
     target 发生事件的节点
     currentTarget  传播到的节点
     timeStamp  何时发生
     bubbles 是否在文档树起泡
     stopPropagation()  阻止传播
 
     事件传播的顺序有2种
  1.         Netscape 4 supported event capturing , which triggers event listeners from the top-most ancestor to the element in question—i.e., from the outside in.
  2.         Microsoft endorsed event bubbling , which triggers event listeners from the element, propagating up through its ancestors—i.e., from the inside out.
  3. Event bubbling makes more sense to me, and it is likely to be the model used in day-to-day development. The W3C compromised and stipulated support for both event models in their specification. Events conforming to the W3C model are first captured until they reach the target element; then, they bubble up again.
  4. You can choose the type of event handler you want to register, capturing or bubbling, which is where the useCapture argument to addEventListener() comes into the picture. If the last argument to addEventListener() is true, the event handler is set for the capturing phase; if it is false, the event handler is set for the bubbling phase
 
 
 
 
 
 

CORS  允许跨域

 

CORS lets you break out of the same origin policy, giving you access to authorized remote servers. The specification is well supported by the major browsers, so unless you’re using IE6, you should be fine.

CORS support by browser:

IE >= 8 (with caveats)

Firefox >= 3

Safari: full support

Chrome: full support

Opera: no support

Using CORS is trivially easy. If you want to authorize access to your server, just add a few lines to the HTTP header of returned responses:

Access-Control-Allow-Origin: example.com

Access-Control-Request-Method: GET,POST 

0
0
分享到:
评论

相关推荐

    JavaScript犀牛书电子版

    《JavaScript犀牛书》是JavaScript编程领域的一本经典著作,被广大开发者誉为"骨灰级"的学习资料,尤其适合初学者入门。这本书全面而深入地介绍了JavaScript语言的核心概念、语法以及实际应用,旨在帮助读者建立起...

    JavaScript权威指南(JavaScript犀牛书一本)

    《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...

    JavaScript权威指南(中文第四版犀牛书)

    JavaScript权威指南,最著名的javaScript参考用书。被大家亲切的成为犀牛书,是O'Reilly出版集团动物系列书的一分子。

    犀牛JavaScript第5版下

    《犀牛JavaScript第5版》是一本深受程序员喜爱的JavaScript编程指南,对于深入理解和掌握JavaScript语言具有极高的价值。本书全面覆盖了JavaScript的核心概念、语法结构以及实际应用,旨在帮助读者构建坚实的...

    JavaScript权威指南第五版【新】(犀牛书)

    JavaScript权威指南,著名的犀牛书:) This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today's Web 2.0 applications. This book is both an example-driven ...

    JavaScript权威指南(第六版) PDF 高清 带目录

    犀牛书,JavaScript书籍中的圣经。 本书是程序员学习核心JavaScript语言和由Web浏览器定义的JavaScript API的指南和综合参考手册。 第6版涵盖HTML 5和ECMAScript 5。很多章节完全重写,以便与时俱进,紧跟当今的最佳...

    犀牛JavaScript(第5版)

    犀牛JavaScript(第5版) JavaScript概述 语法结构 数据类型和值 变量 表达式和运算符 语句 对象和数组 函数 构造函数和原型 模块和名字空间 使用正则表达式的模式匹配 脚本化java 客户端 JavaScript

    JavaScript- The Definitive Guide, 第五版 - 犀牛书

    书中较全面地对 JavaScript 的各种函数以及特性作了介绍,而后面占了全书超过一半内容的 JavaScript 核心参考、客户端 JavaScript 参考、DOM 参考,无疑是编写 JavaScript 时最有力的参考手册(当然,在线的除外)。...

    JavaScript权威指南(第六版)犀牛书 淘宝前端团队翻译

    JavaScript权威指南(第六版)犀牛书,淘宝前端团队翻译,中文版

    犀牛JavaScript第5版上

    JavaScript,一种广泛应用于Web开发...总的来说,无论你是初学者还是有经验的开发者,"犀牛JavaScript第5版"都是一份宝贵的资源,它将帮助你深入理解这门语言的精髓,提升你的编程能力,从而在Web开发领域更上一层楼。

    JavaScript权威指南(第四版+中文版)

    JavaScript权威指南(第四版+中文版) 经典的JavaScript教材 犀牛书

    JavaScript权威指南第6版

    经典的JavaScript犀牛书!第6版特别涵盖了HTML5和ECMAScript5!  经典的JavaScript工具书,从1996年以来,本书已经成为JavaScript程序员心中的《圣经》。  程序员学习核心JavaScript语言和由Web浏览器定义的...

    JavaScript权威指南(第五版)

    由于其封面上是一只“爪哇犀牛”(封面上印上动物是原书出版公司O'Reilly一贯的风格),读者亲切地称其为“犀牛书”。 随着Ajax和Web 2.0技术的提出和 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    javascript编程规范

    ### JavaScript编程规范详解 #### 一、引言 在软件开发的过程中,良好的编程规范对于提高代码质量和维护性至关重要。特别是对于广泛使用的JavaScript语言而言,一套严谨的编程规范能够帮助开发者编写出更高质量、...

    犀牛鸟常用javascript特效 1.0.rar

    主要功能: 1、本程序是一个可视化的IE页面滚动条CSS代码生成器。可以选择或直接输入颜色值,直接看到效果,CSS代码自动生成,可复制到剪贴板或存为.CSS文件。是网站制作人员的好帮手。 2、免费、开源程序。...

    不得不看的经典推荐教程-犀牛入门教程_含目录

    犀牛(Rhino)是美国Robert McNeel & Associates公司开发的一款基于NURBS(非均匀有理B样条)的高级三维建模软件,广泛应用于工业设计、建筑设计、船舶设计、珠宝设计、汽车设计、CAD/CAM、快速成型、动画、电影等多...

    USB合辑_usb_犀牛usb接口_犀牛_犀牛3d模型_犀牛建模usb口_

    标题中的“USB合辑_usb_犀牛usb接口_犀牛_犀牛3d模型_犀牛建模usb口”指的是一个专门针对USB接口设计的3D建模资源集合,其中特别提到了“犀牛USB接口”和“犀牛3D模型”。这个合辑可能包含了多个与USB接口相关的3D...

Global site tag (gtag.js) - Google Analytics