zoukankan      html  css  js  c++  java
  • JavaScript学习

    自调用函数

    函数表达式可以 "自调用"。

    自调用表达式会自动调用。

    如果表达式后面紧跟 () ,则会自动调用。

    不能自调用声明的函数。

    通过添加括号,来说明它是一个函数表达式:

    实例

    		<script>
    			$(function(){
    				(function (){
    					alert(1);
    				})();// 自己调用自己 弹出 1 
    			});
    		</script>
    

      

    1.JavaScript 对象

        如下  car  有属性 type,model,color  和 方法 drive()

    		<script>
    			var car = {type:"Fiat", model:500, color:"white"};
    			car.drive=function(){
    				car.type = "111";
    			}
    		$(function(){
    			car.drive();
    			alert(car.type)
    		});
    		</script>
    

      第二种方式

    var myObject = {
        firstName:"John",
        lastName: "Doe",
        fullName: function () {
            return this.firstName + " " + this.lastName;
        }
    }
    myObject.fullName();         // 返回 "John Doe"
    

      

    2.JavaScript JSON

    JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象。
    JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。
    		<script>
    			var text = '{ "sites" : [' +
    				'{ "name":"Runoob" , "url":"www.runoob.com" },' +
    				'{ "name":"Google" , "url":"www.google.com" },' +
    				'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
    				
    			var obj = JSON.parse(text);//1.字符串转换为 json对象
    			
    			// 2.直接定义 json格式的 对象
    			var obj1 = {"sites":[{"name":"Runoob" , "url":"www.runoob.com" },{ "name":"Google" , "url":"www.google.com" },
    								 { "name":"Taobao" , "url":"www.taobao.com" }
    			                    ]
    			           }
    			
    			$(function(){
    				console.log(obj.sites[1].name + "," + obj.sites[1].url);//"Google,www.google.com"
    				console.log(obj1.sites[1].name + "::" + obj1.sites[1].url);//"Google::www.google.com"
    			});
    		</script>
    

    3.JavaScript 闭包

    还记得函数自我调用吗?该函数会做什么?

    实例

    		<script>
    			$(function(){
    				// 1.首先自己调用自己一次,把 局部变量counter初始化0,并返回内部的函数 赋予给变量 add。
    				// 2.以后每次 对 add()的调用 都是 对  内部函数的调用。
    				var add = (function () {
    				    var counter = 0;
    				    return function () {return counter += 1;}
    				})();
    				
    				add();
    				add();
    				add();
    				//--------------------------------
    			});
    		</script>
    // 计数器为 3
     
    4. js 数组去重
    思路:
    1.创建一个新的数组存放结果
    2.创建一个空对象
    3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。
    说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。
    
    Array.prototype.unique3 = function(){
     var res = [];
     var json = {};
     for(var i = 0; i < this.length; i++){
      if(!json[this[i]]){
       res.push(this[i]);
       json[this[i]] = 1;
      }
     }
     return res;
    }
    var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
    alert(arr.unique3());
    

      

     
  • 相关阅读:
    Warning:mailcious javascript detected on this domain来由
    CSS盒模型重新理解篇
    sublime生产力提升利器
    Aptana studio 3前端开发编辑器推荐
    Provides PHP completions for Sublime Text
    关于google电子地图跟卫星地图位置不重合
    无名前端库
    npm 编写cli
    webpack.merge
    ExcelDNA UDF 攻略
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6425169.html
Copyright © 2011-2022 走看看