1。对象字面量
-1。Javascript中所创建的自己定义对象在任务时候都是可变的。能够从一个空对象開始,依据须要添加函数。对象字面量模式能够使我们在创建对象的时候向其加入函数。
<script>//定义空对象var dog = {};//对空对象加入方法dog.name = "Liubo";//对对象添加方法dog.getName = function(){return dog.name;};//改变属性和方法dog.getName = function(){returen "LaoLiu";};//全然删除属性/方法delete dog.name;</script>
<script>var dog = {name: "LaoLiu",getName:function(){return this.name;}};</script>
-2,对象字面量语法a. 将对象包装在大括号里。b. 相应以逗号切割属性和方法。c. 用冒号切割属性名和属性值。d. 当变来那个复制的时候。以右括号结束。
2,自己定义构造函数:
<script>var Person = function(name){this.name = name;this.say = function(){return "I am " + this.name;}}var adam = new Person("Adam");console.log(adam.say());</script>
当以new操作符调用构造函数的时候:
a. 创建一个空对象。而且this变量引用该对象,同一时候还继承了该函数的原型。
b.属性和方法被增加到this引用的对象中。
c.新创建的对象由this所引用,而且最后隐式的返回this。
以上代码,在后台实际运行例如以下所看到的:
var Person = function(name){var this = {};this.name = name;this.say = function(){return "I am " + this.name};//return this;};
3,构造函数的返回值。
<script>var Objectmark = function(){this.name = "This is it!";var that = {};that.name = "And that is that!";return that;//由于return that所以导致第一次初始化的name将被忽略};var o = new Objectmark();console.log(o.name);</script>
4。强制使用new的模式
<script>function Man(){this.name = "Lao Liu";}//创建新对象var laoLiu = new Man();console.log(typeof laoLiu);// objectconsole.log(laoLiu.name);//Lao Liu//反模式//未使用new操作var pangLiu = Man();console.log(typeof pangLiu);//undefinedconsole.log(pangLiu.name);//Cannot read property 'name' of undefined</script>
5,数组、
1。 var a = [3];//声明一个长度为1 ,a[0] = 3 的数组。
2。var a = new Array(3);//声明一个长度为3的数组
6,JSON:即为大括号包括起来的key-value
JSON解析:
<script>var jstr = '{"mykey" : "my value"}';//反模式var data = eval('(' + jstr + ')');console.log(data);//推荐使用data = JSON.parse(jstr);console.log(data.mykey);</script>
JSON封装:
<script>var dog = {name : "LaoLIu",dob: new Date(),legs: [1, 2, 3, 4]};var jsonStr = JSON.stringify(dog);console.log(jsonStr);//{"name":"LaoLIu","dob":"2014-11-07T06:17:28.097Z","legs":[1,2,3,4]}</script>
7,正則表達式
a.使用new RegExp生成正則表達式。
b.使用字面量语法
8,基本类型包装器
Javascript的五类基本类型:数字、字符串、布尔、null和undefined。
分别相应: Number() String() Boolean()
<script>var n = 100;console.log(typeof n);//numbervar nobj = new Number(100);console.log(typeof nobj);//objectvar s = "hello";console.log(s.toUpperCase());//HELLOvar greet = "1 2 3 4";console.log(greet.split(" ")[0]);//1</script>
9,错误对象(异常捕获)
<script>try{throw{name:"MyError",//自己定义错误类型message:'oops',extra: 'This is Exception',remedy: genericErrorhandler//指定应该处理该错误的函数};}catch(e){alert(e.message);e.remedy();//调用genericErrorhandler}function genericErrorhandler(){alert("Hi, BigLiu!");}</script>
版权声明:本文博客原创文章,博客,未经同意,不得转载。