您的位置:首页 > Web前端 > JavaScript

重拾JavaScript-day1

2016-03-26 16:19 986 查看

JavaScript基础笔记-day1

数字

  JavaScript 只有一个数字类型,在内部中它被表示为64位的浮点数,JavaScript没有分离出证书类型,所以1 和 1.0的值是相同的。

字符串

  字符字面量可以被包在一个单引号或者双引号中,JavaScript 没有字符类型,要表示一个字符,你只能创建一个包含一个字符的字符串即可。同Java 一样,字符串是不可变得。一档字符串被起床就,就永远无法改变它,不过同样,你可以通过 + 元素安抚连接其他字符来创建一个新的字符创。

'c'+'a'+'t' === 'cat';


代码块

  代码块是一对包含在 花括号 中的一组语句,JavaScript 的代码块不会创建新的作用域,所以在代码块中创建的变量 等于全局变量,因此变量应该定义在函数的头部,而不是代码块中

表达式

  最简单的表达式是 字面量(比如字符串和数字)、变量、内置的值(true、false、null、undefined、Nan、Infnity)、以new 开头的调用表达式、以delete开头的属性提取表达式、包在圆括号中的表达式、以一个前置运算符作为前导的表达式,或者表达式后面跟着:

  

一个中置运算符与另一个表达式

三元运算符

一个函数调用

一个属性提取表达式

字面量 (字面量不要跟变量混淆了)

  - 对象字面量 一种方便地按照指定规格创建新对象的表示法

  - 数组字面量 …

  - 函数字面量 …

对象

  JavaScript对象是无类型的,对象是属性的容器。数字、字符串、布尔值、null 和undefined这些是数据类型,其他所有的值都是对象。数字、字符创和布尔值“貌似对象”,因为它们拥有方法,但是它们使不可变的

  对象字面量:包围在一对花括号中的零或者多个”名/值”对。这是一个方便方便地创建新对象值的表示法。

var empty_object = {};
var stooge = {
"first-name":"Jerome"
"last-name":"Howard";
};
##引用


引用

  对象通过引用来传递,并且传递的是对象的地址,而非值,它们永远不会被复制。

  

原型

  这是JavaScript最重要的一个部分,它没有继承关系,而是通过原型链的形式来“继承”方法和属性的。原型连接只有在检索值的时候才被用到。当我们尝试去获取对象的某个属性值,但是该对象没有属性值,那么JavaScript就会向上查找,从原型对象中去获取该属性值,如果没有继续重复这个步骤,这个过程的终点是Object.prototype。 如果想要的属性完全不存在与原型链中,那么结果就是undefined值。这个过程被称为委托。

  原型关系是一种动态的关系。如果我们添加一个新的属性到原型中,那么该属性会立即对所有基于该原型创建的对象可见。 a question:如果 一个对象基于原型A创建,之后A的某个属性值被改变,那么之前创建的这个对象也改变了吗?

  

反射

这里说的反射并不是Java中的反射,javaScript本身就是一个动态语言,检查对象并确定对象有什么属性是很容易的事情,只要尝试着去检索该属性并验证取得的值

typeof flight.number //'number'


  原型链中的任何属性都会产生值,如果我们想要获取对象独有的属性时

//hasOwnProperty 不会检查原型链
flight.hasOwnProperty('number')//true


forin

  forin 语句可用来遍历一个对象中的所有属性名,注意的是forin枚举遍历的时候,返回的顺序是不一定的,比如你遍历一个数组,它的遍历过程的顺序是不确定的。

delete

 delete 运算符可以用来删除对象的属性。如果对象包含该属性,那么该属性就会被移除,它不会触发原型链中的如何对象。 删除对象的属性可能会让来自原型链中的属性透现出来(意思是,对象拥有属性A,原型链也拥有属性A,当你删除对象的属性时,自然你获取属性A的时候,对象本身此时不存在该属性,但是基于原型链会向上查找到原型链上的属性A)

减少全局污染

  JavaScript 可以随意地定义全局变量来容纳你的应用的所有资源。但是,随意创建全局变量削弱了程序的灵活性,应该避免使用。

  最小化使用全局变量的方法之一是为你的应用创建一个唯一的全局变量:

var MYAPP = {};


该变量此时变成了你的应用的容器

 MYAPP.stooge = {
   "first-name":"Joe";
   "last-name":"Howard"
 };


只要把全局性的资源都纳入一个名称直线,你的程序与其他程序、组件或者类库之间发生冲突的可能性就会显著降低、程序也会变得更容易阅读。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript