javascript权威指南_一分钟复习-JavaScript基础语法(1)

JavaScript是一门高端的、动态的、弱类型的编程语言,现代Web浏览器基本上都包含了JavaScript解析器,支持JavaScript的使用,并且绝大多数的现代网站都是用了JavaScript。JavaScript有一个ECMAScript的语言标准,于2015年更新了ES6版本。这里以JavaScript权威指南(第6版)为基础,介绍的JavaScript截止于ES5,后续的ES版本会放到后面单独介绍。

介绍

JavaScript程序是用Unicode字符集编写的。Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言。JavaScript区分大小写,也就是说,关键词、变量、函数名和所有的标识符都必须采取一致的大小写形式,比如说关键词“while”,必须写成“while”,而不是“While”或是“WHILE”。JavaScript是一门弱类型语言,定义变量的时候,无需确定类型,可以直接定义变量。变量必须以字母、下划线(_)或者美元符($)开始,后续的字符可以是字母、数字、下划线或美元符。结尾的分号,可用可不用。

var x = 0;

注释方面支持两种格式,一种是“//”单行注释、“/**/”多行注释。

//单行注释/*多行注释*//** 多行注释*/

保留字

JavaScript默认了一些保留字,编写程序的时候,请勿使用保留字作为变量名。

// 关键词:break       delete          function    return      typeofcase        do              if          switch      varcatch       else            in          this        voidcontinue    false           instanceof  throw       whiledebugger    finally         new         true        withdefault     for             null        try// ES3:class       const           enum        export      extendimport      super// ES5:implements  let             private     public      yieldinterface   package         protected   static// 严格模式:arguments   eval// Java:abstract    double          goto        native      staticboolean     enum            implements  package     superbyte        export          import      private     synchronizedchar        extends         int         protected   throwsclass       final           interface   public      transientconst       float           long        short       volatile// 预定义全局变量、函数:arguments           encodeURI           Infinity    Number          RegExpArray               encodeURIComponent  isFinite    Object          StringBoolean             Error               isNaN       parseFloat      SyntaxErrorDate                eval                JSON        prseInt         TypeErrordecodeURI           EvalError           Math        RangeError      undefineddecodeURIComponent  Function            NaN         ReferenceError  URIError

类型

JavaScript的数据类型分为原始类型、对象类型。原始类型包括数字、字符串、布尔值、null(空)、undefined。对象是属性的集合,每个属性都由“名/值对”构成,函数是一种特殊的对象。


数字包括整数值和浮点数值,但是不区分整数值和浮点数值,都以浮点数值表示,最大值是±1.7976931348623157e308,最小值是±5e-324。支持16进制、科学计数法表示形式。

030xff // 15*16+15=255(十进制)3.14.3333333336.02e23 // 6.02*10^23

JavaScript支持+、-、*、/、%(求余)运算符操作,还支持通过Math对象去进行辅助的算术运算。

Math.pow(2,53)              // => 9007199254740992:2的53次幂Math.round(.6)              // => 1.0:四舍五入Math.ceil(.6)               // => 1.0:向上取整Math.floor(.6)              // => 0.0:向下取整Math.abs(-5)                // => 5:绝对值Math.max(x,y,z)             // 返回最大值Math.min(x,y,z)             // 返回值小值Math.random()               // 生成一个大于等于0小于1.0的伪随机数Math.PI                     // 圆周率Math.E                      // 自然对数的底数Math.sqrt(3)                // 3的平方根Math.pow(3,1/3)             // 3的次方根Math.sin(0)                 // 三角函数:还有Math.cos,Math.atan等Math.log(10)                // 10的自然对数Math.log(100)/Math.LN10     // 以10为底100的对数Math.log(512)/Math.LN2      // 以2为底512的对数Math.exp(3)                 // e的三次幂

JavaScript预定义了全局变量Infinity和NaN,用来表示正无穷大和非数字值。

prseInt('qqq') // NaN,非数字值prseInt('qqq') == NaNisNaN(prseInt('qqq'))

字符串是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。字符串的长度是其所含16位值的个数,空字符串长度为0。字符串直接量由单引号或是双引号括起来,单引号中可以使用双引号,双引号中可以使用单引号。在字符串中表示多行,可以使用“”。

""'hello'"World"'key="name"'"say 'hello world'"'bigsmall'

字符串支持转义字符。

o      NUL字符( )b      退格符()      水平制表符(	)      换行符(
)v      垂直制表符()f      换页符()      回车符(
)"      双引号(")'      撤号或单引号(')      反斜线()xXX    由两位十六进制数XX指定的Latin-1字符甥塘塘  由四位十六进制数XXXX指定的Unicode字符

字符串可以使用“+”连接,并且可以使用索引来获取对应下标的字符,支持正则表达式匹配。

var a = 'give' + ' 2 ' + 'apples!'a[2]var pattern = /d+/g        // 匹配所有包含一个或是多个数字pattern.test(a)             // true:匹配成功a.search(pattern)           // 6:首次成功的位置a.match(pattern)            // ["2"]:所有匹配组成的数组a.replace(pattern, "#")     // => "give # apples"a.split(pattern)            // => ['give ', ' apples!']:用数字截断字符串

布尔值指代真或假、开或关、是或否。这个类型只有两个值,保留字true和false.undefined、null、0、-0、NaN、""转换成布尔型,会被转换成false。


null表示“空值”,是程序级的、正常的或在意料之中的值的空缺。undefined表示属性或是元素不存在,是系统级的、出乎意料的或类似错误的值的空缺。如果你想要将它们赋值给变量或者属性,或者将它们作为参数传入函数,最佳选择是使用null。


JavaScript支持隐式类型转型和显式类型转型。对象转型原始类型,如果存在toString()方法,则调用toString(),如果没有,则会调用valueOf()方法,如果也没有,则会报错。

变量作用域

一个变量的作用域是程序源代码中定义这个变量的区域。全局变量拥有全局作用域,在任何地方都可以使用。局部变量只能应用于局部内,局部外则无法使用,JavaScript没有块级作用域,可以使用函数作用域来取代。在函数体内,局部变量的优先级高于同名的全局变量。

var a = 0function add(){    var a = 0    a+=1    console.log(a)}add()console.log(a)
5371ddcb95e043afe259bb7af3804080.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值