JavaScript-基本语法和数据类型
前奏:在HTML中使用JavaScript
1_推荐src引用外部JavaScript文件,方便管理与维护,标签位置在页面最下面,使浏览器更优先加载页面内容。
2_HTML页面需要有标准的文档类型申明DOCTYPE,否则会触发混杂模式,页面非常容易出错。
3_考虑禁用JavaScript的场景。
<body> ... //当浏览器不支持javascript或被禁用时,会呈现<noscript>标签内的内容。
<noscript>
<p>本页面需要浏览器支持JavaScript.</p>
</noscript>
</body>
1. 基本语法
1. ECMAScript中的一切(变量,函数名和操作符)都区分大小写。
2. 标识符命名: 首字符必须字母,下划线或$美元符号,数字不能在第一个。(关键字和保留字不能作为标识符)
3. 严格模式 “use strict” 定义了一种要求更高的解析和执行模型
function doSomething(){
"use strict"
//函数体
}
2. 数据类型
数据类型分为基本类型和复合类型。

变量:变量在本质上就是命名的内存空间。
变量的数据类型:就为上面提供的6种数据类型,不过变量的数据类型是动态的,可以在运行时改变变量的数据类型。
变量类型:值类型和引用类型两种,当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型。
值类型的变量存储的就是变量值本身,引用类型的变量存储的是一个指向变量值的指针(地址)。
基本数据类型:number,boolean 、string 、null和 undifined。
| number | 整型或浮点型 |
| boolean | 布尔类型,true或false (注意区分大小写,必须都为小写时才是) |
| string | 字符串,单双引号都可以 |
| null | 表示一个空对象指针, |
| undefined | 变量申明未定义时为undefined, |
| object | 数据和功能的集合 |
number类型
1. 八进制在严格模式下无效,十六进制前两位必须为0x,计算式都将转换为十进制
2. 取值范围,使用全局isFinite()函数判断是否超出范围,如果在范围内则为true,如果在范围外则为false.
Number.MAX_VALUE; /* 最大数值(JS 可以表示的) */
Number.MIN_VALUE; /* 最小数值(JS 可以表示的) */
Number.NEGATIVE_INFINITY; /* 负无穷大,值为-Infinity */
Number.POSITIVE_INFINITY; /* 无穷大 值为Infinity */
3. NaN和isNaN()
NaN是number类型,但不是数字,一旦程序中出现了NaN,说明出现了问题,
NaN的布尔属性为false,NaN和任何值都不相等,包括NaN本身。
任何涉及NaN的操作都会返回NaN。
isNaN()
里面的数据首先通过number()方法转换,
如果能够转为数字,则isNaN()为 false。
如果不能转为数字,则isNaN()为true。
4.数值转换
- Number()函数:将数据整体转换成Number类型,和使用一元加操作符(+)作用相同,建议使用 + 操作符,比较简单。 直接加一个空字符串。
- parseInt()函数:解析整数,从左往右,遇到非数字即停止,可以传入数据和进制,如parseInt('070',8)输出10进制的56。
- parseFloat()函数:解析浮点数,从左往右,会识别第一个小数点,只能接受一个参数,需要注意的是,如果被解析的数据结果是整数,会直接返回整数。
boolean类型
Boolean类型只有:true和false。注意区分大小写,其它形式的都不是,例如True和False.
1. 任何一种数据类型的值都能转换为与其相对应的Boolean值,转换方式主要有三种:
显示转换:转型函数Boolean()
隐式转换,比如条件语句if
2.在转换为数值时,true和false分别转换为1和0,转换为字符串时,分别为'true'和'false'。
3.Boolean类型的true和false,使用typeof时,均返回字符串'boolean'。
string类型
1.隐式转换,任何一个数值与字符串相加,都会将其使用String()转换成字符串,然后将两个字符串合并。
2.显示转换String(),
3.字符串使用反斜杠“\”来转义,常见的转义字符:
| 字面量 | 含义 | 字面量 | 含义 | 字面量 | 含义 |
| \n | 换行 | \t | 制表 | \b | 空格 |
| \r | 回车 | \f | 进制 | \\ | 反斜杠 |
| \’ | 单引号 | \” | 双引号 | ||
| \xnn | 以十六进制代码nn表示的一个字符 | \unnnn | 以十六进制代码nnnn表示的一个Unicode字符 |
null和undefined区别
|
null |
undefined |
|
| 表示 | 空对象指针 | 尚未定义的变量 |
| typeof运算结果 | object | undefined |
| undefined派生null,使用==判断为true | undefined派生null,使用==判断为true | |
| 如果定义变量准备在将来保存对象, 那么最好将变量初始化为null. |
无论申明情况下后没有必要将一个变量显示设置为undefined. |
这五种基本数据类型可以直接操作保存在变量中的实际值。
基本数据类型都保存在内存中的栈区。

引用(复合)数据类:javascript引用数据类型是保存在堆内存中,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作对象在栈内存中的引用地址。
所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。

注意:如果obj b重新赋值操作时, obj a指向原本的对象不变,obj b指向新的对象,赋值和复制操作不一样。
引用类型是可以添加属性,基本类型虽然也可以添加属性,也不会报错,但是却无法访问。
JavaScript-基本语法和数据类型的更多相关文章
- JavaScript的语法、数据类型、基本算数和逻辑运算操作
str.toString() 可以把字符串.数值.布尔值.对象转为字符串 String(str) 任何数值强制转换为字符串类型 <!DOCTYPE html> <html lang= ...
- 02JavaScript基础语法及数据类型
JavaScript基础语法及数据类型 2.1数据类型 2.1.1字符串(String) 用单引号或双引号括起来的零个或多个单一的字符所组成. 2.1.2数值(Number) 包含整数或浮点数. 2. ...
- javascript基础语法备忘录-变量和数据类型
//javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...
- JavaScript 基本语法 -- 数据类型 & 变量
JavaScript都有哪些数据类型呢? 在JavaScript里面,数据类型分为两类:原始类型(primitive type)和对象类型(object type) 1. 原始类型(我的理解,不可分割 ...
- JavaScript基本语法(一)
前段时间学习了HTML和CSS,也实战了一些结构较简单的项目.在还没运用到JS的知识时,做出来的效果总觉得少了些什么.虽然总体布局与一些基本的特效,也能用HTML+CSS就能完成.但如今开始进入Jav ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- javascript基础语法——词法结构
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...
- 【repost】JavaScript 基本语法
JavaScript 基本语法,JavaScript 引用类型, JavaScript 面向对象程序设计.函数表达式和异步编程 三篇笔记是对<JavaScript 高级程序设计>和 < ...
- 一、JavaScript概述 二、JavaScript的语法 三、JavaScript的内置对象
一.JavaScript的概述###<1>JavaScript的概念 又称ECMAScript,和java没有任何关系 嵌入在HTML元素中的 被浏览器解释运行的 一种脚本语言. ###& ...
- Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制
Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...
随机推荐
- linux下安装Nginx1.16.0
因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 yum ...
- 基于 ZooKeeper 搭建 Spark 高可用集群
一.集群规划 二.前置条件 三.Spark集群搭建 3.1 下载解压 3.2 配置环境变量 3.3 集群配置 3.4 安装包分发 四.启 ...
- win2008环境mysql主从配置
一.主库相关配置.设置 step1:主库配置文件 [mysqld] # 数据库id,唯一 server-id = 1# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编 ...
- 一步一步教你用IntelliJ IDEA 搭建SSM框架(3)——实现用户登录功能
上面两篇博客已经详细的介绍了在IntelliJ IDEA 搭建SSM框架的整个过程,下面我们就要在搭建好的环境里实现我们想要的功能了.本文完成用户的登录功能,主要包括:用户注册,登录,编辑,退出,注销 ...
- SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;
SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...
- 如何使用共享网卡的NAT模式配置VMware12中的CentOS6.7的上网功能
1.首先共享网卡的NAT模式是通过win10中的VMnet8来通信的,如下双击VMnet8 2.点击[详细信息]查看VMnet8的IPV4地址为192.168.232.110,掩码为255.255.2 ...
- 交叉编译多平台 FFmpeg 库并提取视频帧
原文地址: 交叉编译多平台 FFmpeg 库并提取视频帧 交叉编译多平台 FFmpeg 库并提取视频帧 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x8 ...
- 如何安装xenserver
xenserver安装 选择键盘 是否同意协议 清理磁盘 选择本地磁盘安装 选择本地镜像文件 输入管理密码 配置IP地址 配置DNS服务器地址 选择地点 配置NTP服务器地址 开始安装 安装完成
- 【HDU - 1495】非常可乐
-->非常可乐 Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...
- 设计模式-模块方法模式(TemplateMethod)
模块方法模式是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为. UML图: 具体代码: /** * 抽象-模块方法模式核心 */ ...