javascript学习2——基础

来源:互联网 发布:手机qq java精简版 编辑:程序博客网 时间:2024/06/15 00:55

本篇简单介绍一下javascript,作为学习该语言的开端。

1、历史

JavaScript由网景(Netscape)公司创建,"JavaScript"是Sun公司(现在的Oracle)的注册商标,用来特指网景(现在的Mozilla)对这门语言的实现。网景将这门语言作为标准提交给了ECMA-欧洲计算机制造协会一一标准版本的名字"ECMAScript"。当我们提到这门语言时,通常所指的语言版本是ECMAScript 3和ECMAScript 5。  

2、类型、值和变量  

javaScript的数据类型分为原始类型(primitive type)和对象类型(object type)。原始类型分为5种:数字(number)、字符串(string)、布尔(bool)、空(null)、未定义(undefined)。  

javaScript中的数字全部用浮点数值表示,一般都能识别十进制和十六进制表示的数字。十六进制数字以"0x"或"0X"为前缀。浮点型直接量可以用传统的包含小数点的写法(例如:3.14)也可以用指数型表示法(6.9e15 //6.9 x 10的15次方)。数字可以进行算数运算,包括基本的+-*/以及复杂的Math(通过Math对象调用)运算。算数运算一般不会报错,但是结果值会出现Infinity(无穷大,例如:1/0)或NaN(非数字值,例如:0/0)的情况。函数isNaN()可以用来判断参数是否数字,只有是数字时,它才返回false。isFinite()函数在参数不是NaN或Infinity的时候返回true。JavaScript采用IEEE-754浮点数表示法,这是一种二进制表示法,可以精确的表示诸如 1/2、1/4、1/8,但是却无法精确表示(非常接近精确值)0.1、0.01这样的小数,带来的一个问题是,在小数运算中,得到的两个应该相等的小数在进行"=="运算时会返回false。

字符串是一组由无符号的16位值组成的不可变的有序序列。字符串直接量是由单引号或双引号括起来的字符序列。在ECMAScript 3 中,字符串直接量必须写在一行中,而在ECMAScript 5 中,字符串直接量可以拆分成数行,每行必须以反斜线(\)结束。

javascript中的转义字符:

转义字符含义\oNUL字符\b退格符\t水平制表符\n换行符
\v垂直制表符
\f换页符\r回车符\"双引号\'撇号或单引号\\反斜线\xXX由两位十六进制数XX指定的Latin-1字符
\uXXXX由4位十六进制数XXXX指定的Unicode字符

 null是javascript语言的关键字,常用来描述“空值”,但它是一个“object”。undefined是一个全局变量,表示“未定义”,它的类型(typeof)也是“undefined”。普通相等运算符(==)认为两者相等,当然,严格相等运算符(===)肯定不会认为它们相同。===判断相等的条件是值相同、类型相同。

  javascript中的原始值是不可更改的,即使有时候貌似是返回了新值,比如字符串的一些方法,但是实际上,这些方法只是返回了一个新的值,原始值不变!原始值的比较,只要值相等,就相等,因此被称为基本类型。对象是可以改变的,可以给它设置不同的属性,当且两个变量引用同一个对象时,它们才相等,也就是说比较的是引用,因此也被称为引用类型。

javascript中没有块级作用域,只有函数作用域,也就是说,除了声明在函数中的变量,其它变量都是属于全局作用域的。javascript还有一个被习惯性称为“声明提前”的特性:变量声明语句会被javascript预编译器提前到变量作用域的起始位置。这样一来,即使变量声明在最后,它在前面的语句中也可以被调用,但是,必须注意的是,“声明提前"只限于声明,即使是将变量声明和赋值写在一条语句中(如:var x = 10;),被提前的也只有声明,变量的值必须要程序执行到语句所在位置时才会赋值。

javaScript语言核心定义了几个有用的类:对象(Object)、数组(Array)、函数(Function)、日期(Date)、正则(RegExp)、错误(Error)。  

javascript是一种面向对象语言,数据类型本身可以定义方法来使用值,而不需要通过全局的定义函数来传值操作。 

javaScript变量是无类型的(untyped),变量可以被赋予任何类型的值,同样一个变量也可以重新赋予不同类型的值。使用var关键字来声明(declare) 变量。JavaScript采用词法作用域(lexical scoping)。不在任何函数内声明的变量称做全局变量(global variable),它在JavaScript程序中的任何地方都是可见的。在函数内声明的变量具有函数作用域(function scope),并且只在函数内可见。javascript解释器会进行自动垃圾回收。

0 0