一、JavaScript基础类型

  JavaScript数据是非常简洁的,它只定义了6种基本数据类型。

  

  1.JavaScript是一种弱类型的语言。所以1=="1"返回的就是true。

  2.这里再说个NaN,中文意思是不是一个数字,不能用于算术计算,并且它与自身不相等,例如下面的代码打印出来的就是NaN。

document.write(Number(test2)+ "<br />");
NaN === NaN; // false

  3.当心隐式的强制转换

    3 + true = 4
       “+”既重载了数字相加,又重载了字符串连接 1 + 2 + “3” = “33”

 

二、JavaScript无块级作用域

  1.JS不支持块级作用域,作用域不是离其最近的封闭语句或代码块而是他们的函数。

functin test(){
  for(var i=0;i<3;i++){   
  }
  alert(i);
}
test();

  答案是3,这里在for里面声明var i;其实和在test里var i;的效果是一样的。

 

三、apply与call

  改变函数执行的上下文,这是最基本的用法。两个方法基本区别在于传参不同。

  call(obj,arg1,arg2,arg3);

    call第一个参数传对象,可以是null。参数以逗号分开进行传值,参数可以是任何类型。
  apply(obj,[arg1,arg2,arg3]);

    apply第一个参数传对象,参数可以是数组或者arguments 对象。

  用来类的继承和回调函数。很多库里面就是大量的引用了这两个方法。

  例如用call来模拟数组的slice。

[].slice.call(arguments, 1)

 

四、Window 对象

Window 对象表示浏览器中打开的窗口。

如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。

这里可以看到window对象的属性和方法。

部分属性如下:

 

部分方法如下:

 

五、Navigator 对象

Navigator 对象包含有关浏览器的信息。点击这里查看详情

部分属性如下:

部分方法如下:

 

六、setTimeout与setInterval

setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段

setInterval:周期性地调用一个函数(function)或者执行一段代码。

点击这里可以查看详情

2、语法

setTimeout:

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
var timeoutID = window.setTimeout(code, delay);
  1. timeoutID 是该延时操作的数字ID, 此ID随后可以用来作为window.clearTimeout方法的参数
  2. func 是你想要在delay毫秒之后执行的函数
  3. code 在第二种语法,是指你想要在delay毫秒之后执行的代码
  4. delay 是延迟的毫秒数 (一秒等于1000毫秒),函数的调用会在该延迟之后发生.但是实际的延迟时间可能会稍长一点
  5. 标准浏览器与IE10支持第一种语法中向延迟函数传递额外参数的功能

 

setInterval

var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
var intervalID = window.setInterval(code, delay);
  1. intervalID 是此重复操作的唯一辨识符,可以作为参数传给clearInterval()。
  2. func 是你想要重复调用的函数。
  3. code 是另一种语法的应用,是指你想要重复执行的一段字符串构成的代码
  4. delay 是每次延迟的毫秒数 (一秒等于1000毫秒),函数的每次调用会在该延迟之后发生。和setTimeout一样,实际的延迟时间可能会稍长一点。
  5. 标准浏览器与IE10支持第一种语法中向延迟函数传递额外参数的功能

 

六、JQuery

  jQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需要定义id即可。

  1.选择器,核心部分,经常会用到,里面有些是封装了的方法

  

  2.属性,在操作html页面的时候,肯定会要调用的。

  

  3.筛选,在根据dom的位置查找标签的时候,需要用到。

  

  4.文档处理,增加修改标签很容易用到

  

  5.CSS,修改页面样式的时候很好用

  

  6.延迟对象,这个很好用,可以让ajax异步操作按顺序来

  

 

七、ajax

  很时髦的一个应用,异步加载,这里就用JQuery封装了的方法来做事例。具体的参数可以在这里查看

  

 

八、闭包

闭包的官方的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。点击这里可以查看详细的介绍。

通俗点的说法是:

  1. 从理论角度:所有的函数。因为它们都在创建的时候就将上层上下文的数据保存起来了。哪怕是简单的全局变量也是如此,因为函数中访问全局变量就相当于是在访问自由变量,这个时候使用最外层的作用域。

  2. 从实践角度:以下函数才算是闭包:

            即使创建它的上下文已经销毁,它仍然存在(比如,内部函数从父函数中返回)
            在代码中引用了自由变量(自由变量:是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量)
        function testFreedom() {
            var freedomVar = 1;
            function inner(param) {
                echo(pclosure1, param + freedomVar);//将结果打印到pclosure1中
            }
          return inner;
        }

对于inner函数来说,freedomVar就属于自由变量。

 

 posted on 2015-01-04 17:31  咖啡机(K.F.J)  阅读(167)  评论(0)    收藏  举报