严格模式

ECMA5引入了严格模式的概念。严格模式是为JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMA3中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。要在整个脚本中启用严格模型,可以在顶部添加b编译指示代码,告诉JavaScript引擎切换到严格模式:

"use strict"

如果在函数内部添加这条编译指示代码,表示这个函数将在严格模式下执行。

数据类型

ECMA中有5中简单数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型——Object。

Undefined类型

Undefined类型只有一个值,即Undefined。在使用var声明变量但未对其初始化时,这个变量的值就是Undefined,例如:

var message;
alert(message==undefined)//true

即便未初始化的变量会自动被赋予undefined值,但显示的初始化变量依然是明智的选择。如果能够做到这一点,那么当typeof操作符返回”undefined”值时,我们就知道被检测的变量还没有声明,而不是尚未初始化。

Null类型

Null类型时第二个只有一个值的数据类型,这个特殊的值时null。从逻辑角度来看,null值表示一个空对象指针,而这正是使用typeof操作符检测null值时会返回”object”的原因,如例所示

var car =null;
console.log(typeof car);//object

Boolean类型

Boolean类型是使用的最多的一种类型,该类型只有俩个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0.

需要注意的是,Boolean类型的字面值true和false是区分大小写的。

要将一个值转换为Boolean值,可以调用转换函数Boolean(),如例:

var message = "hello word";
var messageBool = Boolean(message);

Number类型

浮点数值:所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一个为数字。对于那些极大或极小的数值,可以用e表示(即科学计数法)表示的浮点数值表示。用e表示法表示的数值等于e前面的数据乘以10的指数次幂。如例

var floatNum=3.125e7    //等于31250000

数值范围:由于内存的限制,JavaScript并不能保存所有的数值。能够表示最小的数值存在Number.MIN_VALUE中——大多数浏览器中,这个值是5e-324;能够表示的最大数据保存在Number.MAX_VALUE中——大多数 浏览器中,这个值是 1.797631348623157e+308。如果计算结果超出JavaScript数值范围的值,那么这个值将会被转为正无穷或负无穷,具体要看这个数值是正数还是负数。

NAN,非数值,是一个特殊的数值,这个数值用户表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛异常了),例如,在其他编程语言中,任何数除以0都会抛出异常,但在JavaScript中,任何数值除以0都会返回NaN,因此不会影响其它代码的执行。

NaN本身有俩个特点:

1.任何涉及NaN的操作都会返回NaN,如:NaN/10.

2.NaN与任何之都不相等,包括NaN本身。

针对NaN俩个特点,JavaScript定义了isNaN()函数,用来判断参数是否是数值类型。

数值转换:有三个函数可以把非数值转换为数值:

1.Number(),可转换任何类型

2.parseInt(),仅用于字符串转换

3.parseFloat(),仅用于字符串转换

数值转换规则:

  1. 如果是Boolean值,true和false将分别被转换为1和0。
  2. 如果是数字值,只是简单的传入和返回。
  3. 如果是null值,返回0。
  4. 如果是undefined,返回NaN。

如果是字符串,遵循以下规则:

  1. 如果字符串中只包含数字,则将其将其转换为数值
  2. 如果字符串中包含有效的浮点格式,则将其转换为对应的浮点数值
  3. 如果字符串中包含有效的十六进制格式,则将其转换为相同大小的十进制整数
  4. 如果字符串是空的,则将其转换为0
  5. 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的是结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换返回的字符串值。

String类型

1.字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,用来表示非打印字符,或者具有其他用户的字符。如表格所示:

字面量 含义
\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
\\ 斜杠
\’ 单引号

\”

双引号
 
   

Object类型

Object的每个实例都有下列的属性和方法:

  • Constructor:保存着用户创建当前对象的函数。
  • hasOwnProperty(propertyName):用于检查传入的参数是否在当前对象实例中。如:o.hasOwnProperty("name")
  • _sPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型
  • propertyIsEnumerable(propertyName):用于检查给定的属性是否能否使用for-in语句来枚举。与hasOwnProperty一样
  • toLocaleString():返回对象的字符串表示,该字符串与执行环节的地区对应。
  • valueOf():返回队形的字符串、数值或布尔值表示,通常与toString()方法的返回值相同。

JavaScript——语法与数据类型的更多相关文章

  1. JavaScript(二):JavaScript语法及数据类型

    一.JavaScript语法 1.区分大小写ECMAScript中的一切,包括变量.函数名和操作符都是区分大小写的.例如:text和Text表示两种不同的变量.2.标识符所谓标识符,就是指变量.函数. ...

  2. JavaScript -- 语法和数据类型

    前戏 前面学了HTML和CSS相关的知识,那JavaScript是做什么的呢?你在网页上看到的那些炫酷的特效都是通过JS来实现的,所以,想要开发一个逼格满满的web页面,JS是必须要会的 什么是Jav ...

  3. JavaScript学习笔记(5)——JavaScript语法之数据类型

    JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: var x // x 为 undefined var x = 6; // x 为数字 var x = "Bill&q ...

  4. JavaScript基础精华01(变量,语法,数据类型)

    JavaScript是一种脚本语言. 脚本,一条条的文字命令.执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行 JavaScript基本组成 1.基本语法(浏览器基本都支持,有统 ...

  5. 12种不适宜使用的javascript语法

    1. == (o゜▽゜)o☆[BINGO!] Javascript有两组相等运算符,一组是==和!=,另一组是===和!==.前者只比较值的相等,后者除了值以外,还比较类型是否相同. 请尽量不要使用前 ...

  6. JavaScript:JavaScript语法的详细介绍

    JavaScript语法:只要Java会了,基本上javascript语法就会了. ——变量的定义 ——程序的结构控制 ——数组操作 ——函数的定义即使用 基本的test.html代码如下,它会导入下 ...

  7. Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...

  8. Javascript语法基础

    Javascript语法基础   一.基本数据类型   JavaScript中支持数字.字符串和布尔值三种基本数据类型: 1.数字 数字型是JavaScript中的基本数据类型.在JavaScript ...

  9. 第九十八节,JavaScript语法、关键保留字及变量

    JavaScript语法.关键保留字及变量 学习要点: 1.语法构成 2.关键字保留字 3.变量 任何语言的核心都必然会描述这门语言最基本的工作原理.而JavaScript的语言核心就是ECMAScr ...

随机推荐

  1. HCatalog 学习之路

    最近在使用sqoop把数据从hive数仓导出到mysql数据库中接触到了hcatalog,所以特意学习了解一下相关知识,据悉hcatalog还是apache顶级项目. 学习参考: HCatalog 介 ...

  2. 【转】阿里出品的ETL工具dataX初体验

    原文链接:https://www.imooc.com/article/15640 来源:慕课网 我的毕设选择了大数据方向的题目.大数据的第一步就是要拿到足够的数据源.现实情况中我们需要的数据源分布在不 ...

  3. 【函数封装】javascript判断是否是微信浏览器

    //判断是否是微信浏览器的函数 function isWeiXin(){ //window.navigator.userAgent属性包含了浏览器类型.版本.操作系统类型.浏览器引擎类型等信息,这个属 ...

  4. 20165215 实验三 敏捷开发与XP实践

    20165215 实验三 敏捷开发与XP实践 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教师:娄嘉鹏 实验日期:2018年4月28日 实验时 ...

  5. 转:【专题十二】实现一个简单的FTP服务器

    引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...

  6. 安装mysql警告 warning: mysql-community-server-5.7.19-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

    摘自:https://www.cnblogs.com/royfans/p/7243641.html 红帽安装rpm安装MySQL时爆出警告: 警告:MySQL-server-5.5.46-1.linu ...

  7. 虚拟继承C++

    C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类.这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数 ...

  8. SpringMVC配置字符编码过滤器CharacterEncodingFilter来解决表单乱码问题

    1.GET请求 针对GET请求,可以配置服务器Tomcat的conf\server.xml文件,在其第一个<Connector>标签中,添加URIEncoding="UTF-8& ...

  9. Inception 模型

    https://blog.csdn.net/xxiaozr/article/details/71481356 inception v1: 去除了最后的全连接层,使用全局平均池化层来代替,因为全连接层的 ...

  10. 4~20mA电流输出芯片XTR111完整电路(转)

    源: 4~20mA电流输出芯片XTR111完整电路