JavaScript基础之九(toString,toJSON,valueOf)

javascript有几个非常重要的方法,这些方法是被所有的对象继承的,我们定义的对象不需要再去实现它们,必要时可以重写,并且有的方法会在必要时自动被javascript解析器调用,本文说说它们。

toString:返回一个字符串,代表当前的对象。在字符串环境下会自动被调用。代码说明:

继续阅读“JavaScript基础之九(toString,toJSON,valueOf)”

梳理javascript中prototype(原型)、class(类)、constructor(构造函数)

可能有些人会觉得题目中的这些概念比较难理解,其实我一直觉得,概念难理解关键在于没有针对概念进行实践,或者说在我们工作中很少涉及到对这些概念理解的实践。概念就向一个黑盒子,我们需要在外进行实践,才能做到深刻理解。今天我会尽力去通过实践来让这些概念容易被理解,Let’s go!

1.说说Class(类)

学过java,C#等编程语言的,对这个概念并不陌生,它就是一类具体事物的抽象,概括。在javas,C#这些高级语言里面可以直接定义类,并且给类添加各种方法,属性等成员。类和类之间可以继承,调用等。在javascript里面,类的概念没有变,只是有些不同。那就是javascript里面类是和prototype息息相关的,prototype是javascript语言提供的一个对象。javascript类具体的定义:类是一个集合,这个集合包含一个或多个对象,这些对象都继承自同一个prototype。我认为正是有了prototype及其相关的特性,才使得javascript是一个面向对象的语言,prototype是javascript类的核心。 继续阅读“梳理javascript中prototype(原型)、class(类)、constructor(构造函数)”

JavaScript点滴积累之Object.defineProperty用法(错误A property cannot both have accessors and be writable or have a value)

Object.defineProperty(obj, prop, descriptor):给对象定义属性,或者修改对象的属性,并且返回该对象。对象接收三个参数:对象,属性名,属性描述(限定)。

1.descriptor参数必须是一个对象类型,并且属性可以分为三类(必须,数据,可访问性),分别如下: 继续阅读“JavaScript点滴积累之Object.defineProperty用法(错误A property cannot both have accessors and be writable or have a value)”

JavaScript基础之八(functions和闭包)

1.function的调用有四种方式:①普通函数调用  ②作为方法调用(函数作为对象的属性成为方法)  ③构造函数调用  ④call,apply方法来调用

 

2.this是javascript的关键字,this没有作用域,跟调用的函数有关系,或者在严格模式为undefined。嵌套的函数this不指向外部函数。如下代码:

继续阅读“JavaScript基础之八(functions和闭包)”

JavaScript基础之六(Objects,原型prototype)

1.本地对象:Array,function,date,RegExp等,浏览器对象,HTMLDocument等(host对象,也称为本地对象

2.除了string,Number,boolean,null,undefined之外的称为Object。ES5里面可以忽略最后的逗号,ES3大部分都会忽略,但是IE里面会报错。ES5里面要求name加引号。

  推荐对象的写法:name和value都加上引号,尾部的逗号去掉 继续阅读“JavaScript基础之六(Objects,原型prototype)”

JavaScript基础之五(return,with,’use strict’)

1.return语句

基本只能存在function里面,return后面如果不跟任何表达式,则相当于返回undefined(return undefined;)

2.width语句:不建议使用,使用strict模式,很难优化,效率低。使用方式如下:

继续阅读“JavaScript基础之五(return,with,’use strict’)”

JavaScript基础之四(调用表达式和运算符)

1.函数的调用和对象创建

1)一对圆括号():用来调用函数;

2)如果在函数名称前使用了new fn(),这就是在创建对象了;分为两个步骤:1.new 会创建一个空的对象{},2.具体执行fn(),新的对象作为值传递给了this,给this添加属性就是在给新创建的对象添加属性了。

3)如果构造函数没有返回值,则新创建的对象就是当前的,如果构造函数有返回值,则该返回值代表新创建的对象。 继续阅读“JavaScript基础之四(调用表达式和运算符)”

JavaScript基础之三(数据类型)

1.javascript里面的值类型

  number,string,boolean,null,undefined,除此之外的全部属于引用类型(Object),Object是一个集合(键值对,键值对可以是值类型)有一个地方跟C#不一样,string在C#里面是引用类型,而且是不可变的。string在javascript里面是值类型,也是不可变的。

继续阅读“JavaScript基础之三(数据类型)”

javascript基础之一

上周收到汤姆大叔的赠书《JavaScript编程精解》(顺风快递哦,大叔果然给力),迫不及待浏览了下,首先看到是各种对该书原著的赞誉,非常期待接下来的阅读体验。读完第一章,已经非常吸引我持续读下去。因为书里的内容很对我的胃口——简明扼要,把握细节。 这里我把自己觉得很细节,很重要的部分记录下来,以方便今后的学习和查阅,当然也希望给正在学习javascript的朋友一些方便。

这里再次感谢大叔提供了这么好的javascript学习书籍,想学习javascript的同学,不要错过这本书哦 o(∩_∩)o

继续阅读“javascript基础之一”