`
Folix
  • 浏览: 12233 次
社区版块
存档分类
最新评论

Jquery高级编程阅读笔记2——javaScript基础

阅读更多
  1. 函数
    函数是一个代码块,封装了一系列的代码。例如:
    $(function(){
           var x=2;
           //函数1
           function calc1(){
            	return x=x*2;
            };
            //函数2
            function calc2(){
            	x=x*2;
            };
            console.log(calc1());
            >>4
            console.log(calc2());
            >>undefined  //没有返回值,将会返回undefined
    });
    函数相当于对象,所以可以像处理对象一样的处理函数
    >可以将函数赋予一个变量
    >保存在一个数据结构中(数组或者对象)
    >把函数当成参数传递给其他函数
    >将函数作为另一个函数的返回值
    $(function(){
          var calc = function(x){
            	return x*2;
          };
           console.log(calc(5));
     });
     匿名函数:将一个函数表达式包装在一对圆括号中,然后立即调用改函数
     
     $(function(){
           (function(x,y){
            	console.log(x+y);
            })(5,6);
     });
     该模式用于确保代码块的执行按照预期的效果执行,比如下面
    $(function(){
    	var x = 42;
    	var message = (function(x){
    		return function(){
    			console.log("x值等于"+x);
    		};
    	})(x);
    	message();
    	x=12;
    	message();
     });
     输出都是 x值等于42,无论在外部x的值发生变化,不影响函数执行的x的值
  2. 理解执行上下文
    执行上下文是一种对象,可以通过this访问执行上下文。
  3. 作用域和闭包
    JavaScript中,作用域维持在函数级别,并非块级别,this关键字绑定于全局名称空间,当在一个方法创建一个内部函数时,内部函数this将绑定全局命名空间,而不是绑定于该方法
    $(function(){
    	obj = {};
    	obj.method = function(){
    		//可以将this赋予一个that变量
    		var that = this;
    		this.counter = 0;
    		
    		var count = function(){
    			//这里的this绑定的还是全局obj,所以输出是undefined
    			console.log(this.counter);
    			that.counter +=1;
    			console.log(that.counter);
    		};
    		
    		count();
    		count();
    		console.log(this.counter);
    	};
    	obj.method();
     });
    
    >>>undefined
    >>>1
    >>>undefined
    >>>2
    >>>2
     
  4. 访问级别
    JavaScript默认对象中所有成员都是公有和可访问的,要实现私有方法或属性,可以使用闭包
    $(function(){
    	console.log(this);
    	function TimeMachine(){
    		//私有成员
    		var destination = "2015";
    		
    		//公有成员
    		//this代表TimeMachine()对象
    		console.log(this);
    		this.getDestination = function(){
    			return destination;
    		};
    	}
    	
    	var time = new TimeMachine();
    	console.log(time.getDestination());
    	>>>2015
    	console.log(time.destination);
    	>>>undefined
     });
     
  5. JavaScript数组
    创建方式
    1、var array1 = new Array();
          array1[0] = 1;
          array1[1] = "a string";
    2、var niceArray = [1,2,3]
    移除数组元素,使用delete   delete array1[0];但是不会改变数组长度,只是在数组中留下一个空元素

  6. JavaScript最佳实践
    将字符串转换为数值,最好使用操作符(+)  +“010”;
    使用等同(===)操作符比较两个值
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics