码迷,mamicode.com
首页 > 编程语言 > 详细

第十篇 javascript基础语法

时间:2016-01-22 00:03:08      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

1)基本概念

a) 语句(statement)是为了完成某种任务而进行的操作,语句以分号结尾,一个分号就表示一个语句结束。;如:var a = 1;

b) 表达式(expression),指一个为了得到返回值的计算式。如:1+3

c) 变量是对“值”的引用,使用变量等同于引用一个值。var a = 1;变量存在声明和赋值两个过程,var a = 1;等价于 var a;a = 1;

如下申明一个已存在的变量是无效的,

var x = 1;

var x;

x // 1

但是,如果第二次声明的同时还赋值了,则会覆盖掉前面的值。

var x = 1;
var x = 2;
// 等同于
var x = 1;
var x;
x = 2;

avaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升。
console.log(a);
var a = 1;
//等同于
var a;
console.log(a);
a = 1;
请注意,变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。

d) 标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以aA是两个不同的标识符。
标识符命名规则如下:
  • 第一个字符,可以是任意Unicode字母,以及美元符号($)和下划线(_)。
  • 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9

e) 数据类型如下(据说ES6有增加新的数据类型,这里不讨论):

  • 数值(number):整数和小数(比如1和3.14)
  • 字符串(string):字符组成的文本(比如"Hello World")
  • 布尔值(boolean):true(真)和false(假)两个特定值
  • undefined:表示“未定义”或不存在,即此处目前没有任何值
  • null:表示空缺,即此处应该有一个值,但目前为空
  • 对象(object):各种值组成的集合

f) 对象又可以分成三个子类型。

  • 狭义的对象(object)
  • 数组(array)
  • 函数(function)

g) typeof运算符 (typeof运算符可以返回一个值的数据类型)

typeof 123 // "number"
typeof ‘123‘ // "string"
typeof false // "boolean"
function f() {}
typeof f
// "function"
typeof undefined
// "undefined"
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"

既然 typeof对数组(array)和对象(object)的显示结果都是object,那么怎么区分它们呢?

h)instanceof运算符(属于某个类型的实例)

var o = {};
var a = [];

o instanceof Array // false
a instanceof Array // true

i)null和undefined
nullundefined都可以表示“没有”,含义非常相似。将一个变量赋值为undefinednull,老实说,语法效果几乎没区别。

首先,null像在Java里一样,被当成一个对象。但是,JavaScript的数据类型分成原始类型和合成类型两大类,Brendan Eich觉得表示"无"的值最好不是对象。

其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误。

因此,Brendan Eich又设计了一个undefined。他是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN

 

 


第十篇 javascript基础语法

标签:

原文地址:http://www.cnblogs.com/zhouqingda/p/5149786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!