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());

  

 
原文地址:https://www.cnblogs.com/GotoJava/p/6425169.html