澳门黄冠娱乐备用网址一个字符串可以采取单引号或对引号来定义。一些常用属性。

 

第一章

  • JavaScript起源于Netscape于微软的浏览器大战时,由Netscape与Sun公司合作开发
  • DOM是如出一辙学针对文档内容展开抽象和浮泛的点子。
  • 一律开始,各家浏览器厂商还发生个别的同一效仿DOM标准,后来出于W3C结合各家优点推出同样仿照新的DOM标准,目前为主具备浏览器还针对立即套DOM标准有及时老好之支撑。
  • 类型

第二章

   
JavaScript提供了差不多单放数据类型。除了这些,这卖文档还用介绍一些虚拟类型,例如选择器、伪类、事件相当。

数据类型

  • Js是一种弱类型语言,弱类型语言是依靠声明变量的早晚不需指定变量的品类,强类型语言需要指定,比如C/C++就是强类型的。

  • 宣称变量使用var关键字。

  • JS不用提前声明变量,赋值语句会自动声明变量,但是未推荐这么做,最好提前声明。

  • 在字符串中之所以反斜线\来转义。

  • 主要出五栽简易数据类型StringNumberBooleanUndefinedNull跟同一种植复杂数据列Object

  • 逐数据类型的囤积形式。

    逐条数据类型的囤积形式

  • 原始类型(primitive
    type):存储于库房(stack)中的简单数据段,也就是说,它们的价直接存储于变量访问的职位。如数字(Number)、字符串(String)、布尔(Boolen)、Null、Undefined。

  • 引用类型(reference
    type):存储在积(heap)中之目标,也就是说,存储在变量处的值是一个指南针(point),指向存储对象的外存处。引用类型就是对象,比如
    Object,Number、String,Boolen,Date、Array 等等。

 

数组

  • 数组是一个变量表示一个价的集,其中每个值都是此数组的一个素。

  • 扬言数组的主意:

      var arr = Array(3);
      var arr = Array();//不指明数组大小
      var arr = Array("one", "two", "three");//声明的同时赋值
    
  • 涉数组:

      var lennon = Array();
      lennon["name"] = "John";
      lennon["year"] = 1940;
    
  • String

对象

  • 靶为是用一个价值表示一致组值,对象的每个值都是它的一个性能。

  • JavaScript中之变量都是某种类型的靶子。

  • 靶下点号获取属性和函数:

      Object.propertyName;
      Object.functionName();
    
  • 实例是目标的切切实实个体。

  • 使用new首要字也对象创建新实例:

      var jeremy = new Person();
    
  • 内建对象: JavaScript中先行定义好的靶子,比如Array,Date,Math

  • 宿主对象:由运行条件优先定义好之目标,在web应用里,运行环境就是是负浏览器。包括Form,Image,Element,document等。

   
在JavaScript中字符串是一个不可变的靶子,它包含无、一个要多只字符。它的路称之为“string”。

操作

  • 下加号拼接字符串或变量:

      var message = "hello " + "world" //hello world;
    
      var who = "world";
      var message = "hello " + who;
    
  • 数值与字符串拼接,结果碰头是一个再度丰富之字符串:

      var value = "10" + 20; //结果为"1020"
    
typeof"some string"; // "string"

比操作符号

  • 履行等操作的时刻,建议下”===”代替”==”,会实施从严比,会又于值与花色。
  • 今非昔比操作符”!=”用”!==”代替,原因与齐。
    • 引号

函数

  • 变量作用域
    1. 全局变量:一旦声明可以当脚步的任何位置访问。
    2. 一对变量:只能于声明其的好函数内部访问(需要因此var重中之重字于函数内部宣称)。

   
一个字符串可以下单引号或对引号来定义,你可以双引号内或者周围嵌套使用单引号,如果要是于双引号内使对引号(或者单引号内动单引号),必须嵌套使用反斜杠进行转义。

第三章 DOM

"You make 'me' sad."
'That\'s "cranking" good fun!'
"<a href=\"home\">Home</a>"

DOM

  • DOM 中的 D: document,具体到前者就是咱们编辑的网页文档

  • DOM 中之 O:
    object,就是亚章中关系的对象,有用户定义对象内建对象宿主对象

  • window 对象: 对许正在浏览器窗口本身,这个目标的习性与办法统称 BOM
    (浏览器对象模型)

  • DOM中的M: Model-模型,代表某种事物的表现形式,DOM
    把文档表示为同一颗树的花样(数学意义及之培育,类似家谱树),这里叫“节点树”:

    文档树

    • 坐方法

节点

  • 节点:网络术语,表示网络中之一个连接点,在 DOM
    中表示文档树上的树枝和叶。

  • 素节点:指文档中的各种元素,如<body>,<p>等,<html>也根元素。

  • 文本节点:各种要素包围在的文件内容,比如<p>Hello world</p>倍受之之“Hello
    world”。

  • 性能节点:对素进行描述的特性,比如多数因素还有title属性。

    其三种植节点

  • 博元素,有三种艺术

    1. getElementById ,根据加的 ID 返回特定的元素节目标点,是
      document 对象特有的函数

       document.getElementById("id");
      
    2. getElementByTagName,根据加的竹签名返回对象数组,每个对象对承诺文档中来夫标签的一个元素,可以动用通配符“*”来回到文档里之具备因素。

       document.getElementByTagName("h1")
      
    3. getElementByClassName,HTML5 加入,跟 getElementByTagName
      类似,返回一个对象数组,可以等效蹩脚给一定多独class
      name,以空格分隔,顺序无关。

       document.getElementByClassName("class1 class2");
      
  • 对于不支持getElementByClassName的较老的浏览器,可以团结实现一个:

      function getElementByClassName(node, classname) {
          if (node.getElementsByClassName) {
              //使用现有方法
              return node.getElementsByClassName(classname)
          } else {
              var results = new Array();
              var elems = node.getElementsByTagName("*");
              for (var i = 0; i < elems.lenth; i++) {
                  if (elems[i].className.indexOf(classname) != -1) {
                      results[results.length] = elems[1i];
                  }
              }
              return results;
          }
      }
    

   
在JavaScript中起一些搭方法可操作字符串。通常结果连续回到一个新的字符串,或回到一个array。

获和装属性

  • getAttribute函数用于取属性

    1. 一味生一个参数–打算询问的性名字;
    2. 惟有会通过元素节点目标调用;
    3. 倘没有查询及对应属性,返回null
  • object.getAttribute(attribute);

  • setAttribute函数用于安装属性,也只好通过元素节点目标调用:

      object.setAttribute(attribute, value);
    
"hello".charAt( 0 ) // "h"
"hello".toUpperCase() // "HELLO"
"Hello".toLowerCase() // "hello"
"hello".replace( /e|o/g, "x" ) // "hxllx"
"1,2,3".split( "," ) // [ "1", "2", "3" ]

事件处理函数

  • 以一定事件发生时调用特定的 JavaScript 代码。

  • 产生异常多种事件处理函数,比如onmouseover,onmouseout,onclick等。

      event = "JavaScript statement(s)";
    
  • JavaScript代码包含在同样对引号直接,这对引号之间可放多单
    JavaScript 语句,用“;”隔开就推行:

      onclick = "showPic(this)";//this表示当前对象
    
  • 以事件处理函数被点之后,引号之间的 JavaScript
    语句被实践,被调用的言语可以被这个事件处理函数返回一个价值。返回true代表是事件于触发了,false表示没有点,利用就点,可以阻碍一些默认事件,比如下面这个链接,点击后由于返回的是false,浏览器认为此事件尚无让点,所以不会见发出跳转。

      <a herf="http://www.example.com" onclik="return false;">Click me</a>
    
    • Length属性

局部常用属性

  • childNodes属性:用于获取其他一个元素的装有子元素,是一个涵盖这个元素所有子元素的数组(子元素除了元素节点还连广大其它节点)。
  • nodeType性能:获取一个节点的节点类型,节点类型是由此数字代表:
    • 1意味元素节点;
    • 2表示属性节点;
    • 3象征文本节点。
  • nodeValue特性:用于取一个节点的值,一般元素节点的价值是null,文本节点的价是它们其中的文件内容。
  • firstChild属性:获得一个节点的率先身长节点,等同于childNodes[0]
  • lastChild性:获得一个节点的末尾一个子节点,等同于node.childNodes[node.childNodes.length-1]

   
所有的字符串都发一个length属性(长度属性)。

"Hello".length // 5
"".length // 0
    • 默认布尔值

    一个空字符串默认为false。

!"" // true
!!"" // false
!"hello" // false
!"true" // false
!new Boolean( false ) // false

 

  • htmlString

   
当一个字符串在JQuery文档中代表一个要么多单DOM元素时,通常被创造同插到文档中时,这个字符串将给当htmlString。当为作一个JQuery()方法参数传递的下,这个字符串将见面吃视作是HTML。

   
当一个字符串作为参数传递给一个操作方法时,例如.append(),它总是吃当当HTML,因为JQuery对之字符串(CSS选择器)的另外同解释不适用于该上下文。

    $.parseHTML()可以显式的辨析一个html字符串。

// 追加<b>hello</b>:
$( "<b>hello</b>" ).appendTo( "body" );
// 追加<b>hello</b>:
$( "<b>hello</b>bye" ).appendTo( "body" );
// 语法错误, unrecognized expression: bye<b>hello</b>
$( "bye<b>hello</b>" ).appendTo( "body" );
// 追加bye<b>hello</b>:
$( $.parseHTML( "bye<b>hello</b>" ) ).appendTo( "body" );
// 追加<b>hello</b>wait<b>bye</b>:
$( "<b>hello</b>wait<b>bye</b>" ).appendTo( "body" );

 

  • Number

    在JavaScript中的Number是双精度64各项IEEE754格式化的价。仅仅看做字符串的时刻,它们是不足改变之。对于Number类型的数码颇具的运算符都是冲C语言的主意展开演算的。

typeof 12 // "number"
typeof 3.543 // "number"
    • 默认布尔值

   
如果一个数字是0,那么它们默认为false。

!0 // true
!!0 // false
!1 // false
!-1 // false

   
由于是对精度运行,下面这个结果未到底一个不当

0.1 + 0.2// 0.30000000000000004
    • Math

   
JavaScript提供了数学对象吃的数字通用功能。

Math.PI // 3.141592653589793
Math.cos( Math.PI ) // -1
    • 数字分析

    parseInt和parseFloat可以用来解析字符串为数字,如果不点名两者是举行隐式转换的。

parseInt( "123" ) = 123 // (隐式十进制)
parseInt( "010" ) = 8 // (隐式八进制)
parseInt( "0xCAFE" ) = 51966 // (隐式十六进制)
parseInt( "010", 10 ) = 10 // (显示十进制)
parseInt( "11", 2 ) = 3 // (显示二进制)
parseFloat( "10.10" ) = 10.1
    • Numbers与Strings

   
当数字加一个字符串时,结果始终是一个字符串,而运算符方式是一致的,这是内需专注的,如果您想先进行数字运算再附加到一个字符串,那么数字运算需要用括号包裹起来。

"" + 1 + 2; // "12"
"" + ( 1 + 2 ); // "3"
"" + 0.0000001; // "1e-7"
parseInt( 0.0000001 ); // 1 (!)

   
或者你要动用JavaScript提供的String类,可以分析一个数字也字符串。

String( 1 ) + String( 2 ); // "12"
String( 1 + 2 ); // "3"
    • NaN和Infinity

   
解析一个请勿是数字的东西常常结果是NaN,isNaN方法可以协助你认清结果是否是NaN。

parseInt( "hello", 10 ) // NaN
isNaN( parseInt("hello", 10) ) // true

 
  除散装底结果是Infinity。

1 / 0// Infinity

 
  NaN和Infinity都是Number类型的。

typeof NaN // "number"
typeof Infinity // "number"

   
需要留意的是NaN的同等栽奇怪的于,它跟它和谐比是例外的。

NaN == NaN// false (!)

    但是Infinity的比较是殊之。

Infinity == Infinity// true
    • Integer

   
整数凡一个一般的数字型,但在明确指明的时光,表示数字是一个非浮点数。

    • Float

       
    浮点数也是一个日常的数字型,但每当明确指明的时候,就代表数字是一个浮点数。

 

  • Boolean

   
在JavaScript中Boolean代表的是true或者false。

if ( true ) console.log( "always!" );
if ( false ) console.log( "never!" );

 

  • Object

       
    在JavaScript中一切都是对象。最简单易行的创建对象的计是目标文字。

var x = {};
var y = {
name: "Pete",
age: 15
};

    对象的档次是Object。

typeof {} // "object"
    • 点符号

       
    你得下点符号读取和写入对象的性质。

y.name // "Pete"
y.age // 15
x.name = y.name + " Pan" // "Pete Pan"
x.age = y.age + 1 // 16
    • 数组符号

       
    或许你念写对象的特性是透过数组符号,它同意你动态的选择对象的性能。

var operations = {
increase: "++",
decrease: "--"
};
var operation = "increase";
operations[ operation ] // "++"
operations[ "multiply" ] = "*"; // "*"
    • 迭代

       
    通过for-in-loop就足以简单的贯彻目标的迭代。

var obj = {
name: "Pete",
age: 15
};
for( key in obj ) {
alert( "key is " + [ key ] + ", value is " + obj[ key ] );
}

   
需要注意的是for-in-loop可能会见于拉开使用到Object.prototype的时候出现问题,例如Object.prototype被人变更了。

   
JQuery提供了通用的each方法去遍历对象的特性和因素数组。

jQuery.each( obj, function( key, value ) {
console.log( "key", key, "value", value );
});

   
缺点是回调被调用在迭代值的左右文中,因此若错过了原有对象的上下文。

    • 默认布尔值

       
    一个目标,无论其是不是有总体性,默认值永远不会见否false。

!{} // false
!!{} // true
    • 原型

       
    所有的目标都出原型(prototype)属性,每当把其当做属性的上,如果在对象及搜索不顶之特性它还会于靶的原型上进行反省,JQuery广泛的施用原型将计上加至JQuery实例上。JQuery使用jQuery.fn作为jQuery.prototype的别名,你可以使中的人身自由一个

var form = $("#myform");
console.log( form.clearForm ); // undefined
// jQuery.fn == jQuery.prototype
jQuery.fn.clearForm = function() {
return this.find( ":input" ).each(function() {
this.value = "";
}).end();
};
// 所有的JQuery对象实例都可以运行,因为新的方法已经被添加到原型上了
console.log( form.clearForm );
form.clearForm();

 

  • Array

       
    在JavaScript中数组是可生成的,并且发生部分内置方法好应用。

var x = [];
var y = [ 1, 2, 3 ];
typeof []; // "object"
typeof [ 1, 2, 3 ]; // "object"
x[ 0 ] = 1;
y[ 2 ] // 3
    • 迭代

       
    在频繁组的迭代中length属性是坏有效之。

for ( var i = 0; i < a.length; i++ ) {
// a[i]
}

   
当性能是重点的时节,只念博一不善length属性可以帮运行速度之晋级。

for ( var i = 0, j = a.length; i < j; i++ ) {
// a[i]
}

   
另外还有雷同种植情况是当迭代告知句被定义变量来存储数组当前迭代底素,在循环体中不再动用数组元素而是以此变量。

for ( var i = 0, item; item = a[i]; i++ ) {
// 使用item变量
}

   
JQuery提供了each方法可以迭代数组的每个元素,这个艺术对迭代目标的性也是适用的。

var x = [ 1, 2, 3 ];
jQuery.each( x, function( index, value ) {
console.log( "index", index, "value", value );
});

    length属性可以就此来当序号将元素加入到数组的最终。

var x = [];
x.push( 1 );
x[ x.length ] = 2;
x // [ 1, 2 ]

    数组还有很多之放方法。

var x = [ 0, 3, 1, 2 ];
x.reverse() // [ 2, 1, 3, 0 ]
x.join(" – ") // "2 - 1 - 3 - 0"
x.pop() // [ 2, 1, 3 ]
x.unshift( -1 ) // [ -1, 2, 1, 3 ]
x.shift() // [ 2, 1, 3 ]
x.sort() // [ 1, 2, 3 ]
x.splice( 1, 2 ) // [ 2, 3 ]
    • 默认布尔值

       
    一个屡屡组,无论她发生没有发生素,也永远不见面默认为false。

![] // false
!![] // true
    • Array<Type> 符号

       
    在JQuery的API中,经常得发现发生Array<Type>符号。这样好指定数组元素的料想类型,类似于.NET中的泛型。

dragPrevention    Array<String>

 

  • PlainObject

 
  PlainObject是一个JavaScript对象,包含了0独或多个键值对。

var a = [];
var d = document;
var o = {};
typeof a; // object
typeof d; // object
typeof o; // object
jQuery.isPlainObject( a ); // false
jQuery.isPlainObject( d ); // false
jQuery.isPlainObject( o ); // true

 

  • Function

   
一个函数(方法)在JavaScript中可以是命名的要是匿名的。任何一个函数都可分配受一个变量,或传递让一个函数,但是经过传递成员函数这样的主意可使他们吃其他一个靶的上下文调用。函数的档次是“function”。

function named() {}
var handler = function() {}

   
JQuery代码中之匿名函数是大度可见的。

$( document ).ready(function() {});
$( "a" ).click(function() {});
$.ajax({
url: "someurl.php",
success: function() {}
});
    • 参数

   
在函数中起一样栽独特之变量,那就是是参数,它是同等栽伪数组形式之要素。

function log( x ) {
console.log( typeof x, arguments.length );
}
log(); // "undefined", 0
log( 1 ); // "number", 1
log( "1", "2", "3" ); // "string", 3

   
参数对象都产生一个callee属性,它对的凡实例之中的函数。

var awesome = function() { return arguments.callee; }
awesome() == awesome // true
    • 上下文

   
在JavaScript中,this总是指于当前达到下文,默认情况下this指向的是window对象,在一个函数内this的上下文就会来转移,这种变动在函数是怎给调用的。

$( document ).ready(function() {
// this指向window.document
});
$( "a" ).click(function() {
// this指向DOM中的a标签元素
});

   
你可以指定一个函数的光景文来使用函数的置方法call或者apply。两者的分在怎样传递参数,call将装有的参数作为一个arguments传递给函数,而apply接收一个arguments数组作为参数。

function scope() {
console.log( this, arguments.length );
}
scope() // window, 0
scope.call( "foobar", [ 1, 2 ] ); // "foobar", 1
scope.apply( "foobar", [ 1, 2 ] ); // "foobar", 2
    • 作用域

   
在JavaScript中,所有函数内部定义的变量都只以拖欠函数的打算域内是有效的。

    在全局范围外定义的变量和函数内部定义之变量名称相同时,两者是免会见生冲突之。

var x = 0;
(function() {
var x = 1;
console.log( x ); // 1
})();
console.log( x ); // 0
    • 闭包

    闭包是针对作用域范围的扩张,闭包让函数可以于外表看该函数被创造的作用域内之变量。这种模式允许而创建对象后通过措施来操作对象中的变量,这些变量是外表不可见的,这吗多亏面向对象编程的功底。

function create() {
var counter = 0;
return {
increment: function() {
counter++;
},
print: function() {
console.log( counter );
}
}
}
var c = create();
c.increment();
c.print(); // 1
    • 代理模式

   
在JavaScript中生同一种代理模式,为其它对象提供平等栽代理以决定对斯目标的访问,可以兑现核心的面向方面编程(AOP)。

  • 回调

   
回调就是在一个函数中传递一些函数作为该参数。JQuery的风波系就是用函数回调来落实之。

$( "body" ).click(function( event ) {
console.log( "clicked: " + event.target );
});

   
回调的返回值是可选的,例如提防表单提交,我们得以经过波来开展拍卖。

$( "#myform" ).submit(function() {
return false;
});

 

  • Selector

   
在JQuery中一个selector是叫用来挑选DOM文档中的元素,这文档一般是当浏览器中,除此之外通过AJAX接收的XML文档也是适用的。

   
如果selector被指定为参数类型,那么它们用收受所有JQuery构造函数接受的,例如:字符串、元素和要素列表等。

 

  • Event

       
    JQuery事件系统是根据W3C标准规格事件目标的,事件目标是吃担保传递给事件处理器底。

    DOM中之规范事件是:blur, focus,
 load, resize, scroll, unload, beforeunload, click, dblclick, mousedown,
mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change,
select, submit, keydown, keypress, 和
keyup。DOM事件之称号是吗有元素预定义的,JQuery事件模型可以经元素上之组成部分称呼指向一个波。

 

  • Element

       
    在DOM中的一个素得以发性能、文本和子节点。它提供了章程好遍历父节点和子节点,并获得其的性。JQuery提供了援手元素和DOM交互的计。

   
每当使用JQuery中之each方法,函数回调的上下文将给设置也一个DOM元素,事件处理器也是近似的。

$( ":text" ).blur(function() {
if( !this.value ) {
alert( "Please enter some text!" );
}
});

 

  • jQuery

       
    JQuery对象涵盖一个DOM元素的集合。JQuery经常用CSS样式中的选择器来配合文档中的要素,设置JQuery对象中之要素经常被称呼设置“匹配元素”或者“已选元素”。

   
JQuery对象类似于数组,但是需要小心的凡其不是真正的数组对象,虽然它来length属性,但是其他部分数组内置方法是免克采用的。

   
很多JQuery方法返回的吧是JQuery对象,所以当如此的状态下足行使链式调用的点子来调用函数。

$( "p" ).css( "color", "red" ).find( ".special" ).css( "color", "green" );

   
每当你用JQuery的链式调用函数时,如果您想回来到即因素之前的很元素,那么您可使用.end()方法。

   
JQuery对象好是拖欠的,不带有DOM中之因素,你得透过$()创建一个空JQuery对象。如果选择器没有选其它因素或链式方法吃淋了有的素,那么JQuery对象也空而无是error,并且在空的JQuery对象及调用方法是没用的。

 

  • XMLHttpRequest

     
      一些jQuery的AJAX函数返回的凡当地的XMLHttpRequest(XHR)对象,而XMLHttpRequest正是AJAX的主干目标,其要成效是暨劳动端进行数量交互。

 

  • XML Document

    XML文档对象是经浏览器的XML
DOM解析器创建的,XML文档与HTML文档有着不同之语义,但大多数底遍历与JQuery方法对彼此是同一使用与运作的。

 

  • 路检查

   
jQuery提供了一些核心的实用方法来确定一个特定值的花色。

var myValue = [ 1, 2, 3 ];
// 使用JavaScript的typeof来测试类型
typeof myValue === "string"; // false
typeof myValue === "number"; // false
typeof myValue === "undefined"; // false
typeof myValue === "boolean"; // false
// 使用全等于运算符判断是否为null
myValue === null; // false
// 使用Jquery的方法检查类型
jQuery.isFunction( myValue ); // false
jQuery.isPlainObject( myValue ); // false
jQuery.isArray( myValue ); // true

相关文章