第三章 基本概念
2018-11-20 03:18:22来源:博客园 阅读 ()
3.1 语法
ECMAScript 大量借鉴了其他语言的语法
3.1.1 区分大小写
在ECMAScript中所有的东西都是区分大小写的
3.1.2 标识符命名标准
标识符:就是 变量 属性 函数 或者 参数 的名字
- 第一个字符必须是字母,下划线_ 或者 美元符 $
- 其他字符可以是 字母,下划线 ,美元符,数字
按照惯例 ECMA采用 驼峰大小写格式 : 第一个字母小写 其他每个单词 首字母大写 。
不能把 关键词 保留字 作为标识符
3.1.3 注释
// 单行注释 /* 多 行 注 释 */
3.1.4 严格模式
ECMAScript5 引入了 严格模式 的概念 在顶部添加
"use static";
严格模式下 JavaScript的执行结果会有很大不同
3.1.5 语句
ECMAScript 中 语句以一个 分号结尾 ,
var count = 1; var mat = 2;
可以把多条语句放在一个代码块里 , 代码块 以 { 开始 } 结尾
3.2 关键词和保留字
关键词 : 有特定的用途 的关键字
break、else、new、var、 case、 finally 、 return、 void 、 catch 、for 、switch 、 while 、 continue、 function 、this 、 with 、default 、 if 、 throw 、 delete 、 in 、 try 、do 、 instranceof、 typeof
保留字 : 尽管没有特定用途 但却是 将来可用到的 保留字
abstract 、 enum 、int 、 short 、 boolean 、export 、interface、 static、 byte 、extends 、 long 、 super 、 char 、 final 、native 、synchronized 、 class 、float 、 package 、throws 、 const 、goto 、private 、transient 、 debugger 、 implements 、protected 、 volatile 、 double 、import 、public
3.3 变量
ECMASceipt 是 松散类型 的 (弱类型)就是 可以用来保存任何类型的数据。 定义变量时要使用 var 操作符, 后面要跟着 标识符
// 定义了 一个名为 message 的 变量
var message;
定义了一个名字为 message 的变量 该变量没有任何值,会被保存为一个特殊的值 undefined 。 可以在 声明变量的同时 设置 变量的 值
var message = ”hello word“;
也可以再更改 message 的值 message = 100; 但不推荐这样做 更改已保存的类型 但 ECMAScript 却 可以这样做
如果用 var 定义一个变量 则此变量为该变量所再作用域的局部变量 , 也就是说 如果在一个函数内用var声明一个变量则 此变量在函数结束后就被 销毁 。 不过 如果省略 var 操作符 声明 则创建全局变量
function count(){ var message=100; // 局部变量 } count(); alert(message); // 报错 function counta(){ hello=100; // 全局变量 } counta(); alert(hello); // 100
虽然 不加var操作符 就可以 声明全局变量 但不建议这样做 要尽量少声明 全局变量 ,以减少混乱。
也可以 使用 一条语句 定义 多个变量
var a=2,b="3",c=1;
3.4 数据类型
ECMAScript有5种简单的数据类型 也叫 基本数据类型 : Undefined Null Boolean Number String 。 还有 一种复杂类型 Object, object 本质上由一组无序的名和值 组成。 ECMAScript 不支持 自定义类型的机制, 所有的值都是以上六种数据类型之一。
3.4.1 typeof操作符
使用typeof 操作符 可以检查给定数据的类型 操作符可能返回以下字符串
- ”undefined“ --- 如果这个值未定义 ;
- ”String“ --- 这个值 是 字符串
- "Number" --- 这个值 是 数值
- "Boolean" --- 这个值 是 布尔值
- "Object" --- 这个值 是 对象 或者 null
- "function" --- 这个值是 函数
var app="app"; alert(typeof(app)); // "String" alert(typeof app); // "String" alert(typeof 100); // "Number"
typeof 是操作符 不是函数 所以带括号和不带括号 是一样的 。
null 会被认为是一个空的对象引用 所有会返回 object, 函数 在ECMAscript中是对象 ,不是数据类型 但函数也的确有特殊的属性,因此 typeof 区分 函数 和 其他对象。
3.4.2 Undefined 类型
Undefined类型 只有一个值就是 undefined, 在使用var声明变量时未将其初始化 (赋值),那么这个变量的值就为 undefined 。
var message; alert( typeof message); // "undefined"
3.4.3 Null 类型
Null类型是第二给只有一个值的类型,这个值是 null ,从逻辑角度看 null 表示一个空对象指针,因此 typeof 操作符对 null 时会返回 object 。
3.4.4 Boolean 类型
Boolean类型是ECMAScript最常用的类型,此类型有两个值: false 和 true。 这两个值和数字值不是一回事 true不一定等于1 ,false不一定等于0 . 想将一个值转为 Boolean 值 可以使用 Boolean()
var message="Hello word"; alert( Boolean(message) ); // true
以下为 转换规则:
3.4.5 Number 类型
这种类型使用 IEEE754 格式来表示 整数 和 浮点数值。为支持各种数值类型 ECMA-262 定义了不同数值字面量格式。
最基本的数值字面量格式是 十进制 直接在代码中输入数值即可。
除了十进制外,整数还可以通过八进制 或者十六进制的 字面值来表示 , 八进制 第一位必须为0 然后是 八进制数字序列的 0~7 ,如果 字面值 中的数值超出了范围 则 前导零 会被忽略 后面的数值 按 十进制 解析。 十六进制的开始前两位必须是 0× 后面跟任何 十六进制序列数 0~9 和 A~F (字母可以大写也可以小写),
var intNum=55; //整数 var octalNum1=070; // 八进制的 56 var octalNum2=079 // 无效的八进制数值 解析成 79 var hexNum1=0×A // 十六进制的 10 var hexNum2=0×1f // 十六进制的 31
浮点数值
浮点数值就是 带有一个小数点的数值,如果 小数点 后没有任何数字则会被当成整数储存 。 对于 极大或者极小的 数值可以使用 e 表示法 (科学计数法),
var floatNum=3.123e7; // 等于 31230000
浮点数值的最高精度是17位小数,但在算术计算远远不如整数精确 如: 0.2+0.1 不等于 0.3 而是等于 0.30000000000004
数字范围
ECMAScript 能够表示最小的数值保存在 Number.MIN_VALUE 中 ,大多数浏览器这个值为: 5e-324 ; 能够表示的最大数值保存在 Number.MAN_VALUE 里
如果一个数计算超过最大范围则这个值将自动转换为特殊的 Infinty 值 如果 小于 最小范围值则 转换为 -Infinity 值 。 使用 isFinte() 函数 可以 返回这个值是否在正常范围
NaN
NaN 即 非数值 是一个特殊的值, 这个数值表示 本来要返回数值的操作数未返回数值的情况 。 在其他语言 任何数除以0 都会报错 但在ECMAscript中去会返回 NaN 这样就不会报错
NaN 和 任何值 都不相等 包括 本身 。 isNaN() 函数可以 判断 一个值 是否 不是数值 ,如果是数值或者可以转换为数值则 返回 false。
数值转换
有3个函数可以把非数值转换为数值: Number() , parseInt() , parseFloat() 。 第一个函数可以用于任何类型 后两个函数只用于将 字符串 类型
Number() 函数 转换规则 如下
如果是 Boolean的 值 true 转为 1 ,false转为 0
如果是 数字值 ,只是简单的 传入 和 返回
如果是 null 只是 返回 0
如果是undefined 则返回 NaN
如果是 字符串 则有以下规则
如果字符串中只有数字 则将其转为 十进制数值
如果 字符串 包含有效的 浮点数 格式 则转换为对应的浮点数值
如果 字符串 包含有效的十六进制格式 则转为十六进制
如果 字符串 是空的 则 转换为 0
如果字符串包含的是除以上的格式外 则转换为 NaN
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:let和const
- JavaScript之基本概念(二) 2019-08-14
- JavaScript之基本概念(一) 2019-08-14
- 使用jQuery快速高效制作网页交互特效——03 第三章 JavaScr 2018-08-03
- vue-pdf的3.3.1版本build后多生成168个js文件 2018-07-12
- javascript 基本概念 2018-06-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash