JS数据类型
JS语法规范
js
----------------------
HTML中 设置元素的 id 使用小驼峰,设置 类名 时使用短横线-
如果在html中设置自定义属性名为标准形式`data-home-address=""`,则在JS语法中使用属性名就不需要带 `data-`前缀,`data-`后的`home-address`中的"-",会自动映射成小驼峰的形式,如`imgEle.dataset.homeAddress;`。
----------------
JS中变量使用小驼峰的格式,
构造函数的变量名推荐使用首字母大写的方式。
对象中的属性名使用"",如果是小驼峰的形式可以省略""
JavaScript 概述
① 什么是 JavaScript
JavaScript 是一门动态的,弱类型的,解释型的,基于对象的脚本语言。
动态: 程序执行的时候才会确定数据类型。 静态: 书写代码的时候提前确定数据类型。
弱类型: 数据类型可以自动转换。 强类型: 数据类型无法自动转换。
解释型: 边编译,边运行,开发效率更高。 编译型: 边编译,边运行,开发效率更高。
**脚本:**一般都是可以嵌在其它计算机语言当中执行。
② javaScript 的运行环境(解释器)
1. 浏览器,如Chrome浏览器中的V8引擎
2. Node.js
③ 浏览器端的 JavaScript 组成部分
1. 基本代码语法, ECMAScript,ECMA指定
2. BOM, 浏览器提供的API,W3C指定
3. DOM, 文档提供的API,W3C指定
JavaScript 基本语法
JavaScript 在 HTML 中使用的三种方式
① 行内式(内联脚本)
html
<元素 onclick="代码.." ondblclick="代码.."></元素>
② 内嵌式(嵌入脚本)
html
<script>
代码
</script>
css
script标签写在页面的任何位置都会执行到,建议写在其他所有元素的后面
③ 外链式(外部脚本)
html
<script src="js文件的地址"></script>
css
script标签写在页面的任何位置都会执行到,建议写在其他所有元素的后面
JavaScript 注释
js
// 单行注释
alert('OK');
alert('你好'); // 注释本行后面的部分
/*
多行注释
alert(100);
alert(100);
alert(100);
alert(100);
alert(100);
*/
JavaScript 的其他语法特点
1. 指令结束符(语句结束符)是分号或者换行
2. 严格区分大小写
JavaScript 中输出内容
① 输出到弹框
js
alert(内容)
② 输出到页面中
js
document.write(内容)
③ 输出到控制台
js
console.log(内容)
变量
数据、直接量、变量
数据:
直接量: 直接表示数据的方式,如 250
、hello
等。
变量: 将数据取个名字,通过该名字就可以使用数据。
变量的意义
1. 通过变量方便某个数据的多次使用
2. 通过变量保证数据的一致性
变量的语法
js
// 创建一个变量 声明一个变量 使用关键字 var
var num01;
// 给变量赋值 在使用变量 使用变量不需要var
num01 = 250;
// 创建变量并赋值
var num02 = 500;
// 修改变量的值 给变量重新赋值
num02 = 600;
// 将 num02 的值赋值给 num01
num01 = num02;
js
1. 使用没有值的变量,可以自动得到 undefined
2. 使用不存在的变量,报错!因为本身就没有,如果是window.变量形式,这样的方式使用对象的属性,使用不存在的属性,报undefined,因为对象window是存在的。
变量名的命名规范(标识符的命名规范)
① 强制规范
1. 变量名可以由数字、字母、下划线、$ 组成且不能以数字开头
2. 变量名不能是关键字或保留字
② 建议规范
1. 请使用有意义的词语作为变量名
2. 变量名如果多个词语组成,建议使用小驼峰命名法
js
小驼峰命名法
- 首字母小写,每一个单词的开头字母大写
- maxlength --> maxLength
- 基本结构:xxxYyyZzz
- JS变量名通常都会使用小驼峰
大驼峰命名法
- 首字母大写,每一个单词的开头字母大写
- maxLength --> MaxLength
- 基本结构:XxxYyyZzz
- 大驼峰用于类名的设置
帕斯卡命名法
- 所有的字母都小写,单词之间使用_隔开
- maxlength --> max_length
- 基本结构:xxx_yyy_zzz
- 在JS中使用的并不常见
数据类型
数据类型的划分
① 原始类型(基本类型)
number 数字
string 字符串
boolean 布尔
null 空
undefined 未定义
② 对象类型(复合类型)
array 数组
function 函数
object 对象
date 日期
...
判断数据的类型
js
typeof(数据)
number 数值类型
① 整型
js
764; // 十进制表示
012; // 八进制表示 只能用于表示整数
0x12; // 十六进制表示 只能用于表示整数
② 浮点型
浮点数的运算存在精度问题:
js
0.1 + 0.2; // 0.30000000000000004
③ 科学计数法
js
1.3e4; // 13000
1.67e78;
2.3e-2 // 0.023;
④ NaN
1. 什么是 NaN
NaN,全称 Not a Number,是 number 类型的一种
2. NaN 的特点
1.1 NaN 与任何数字进行任何计算结果都是 NaN
1.2 NaN 与任何数字都不相等,包括自己
3. isNaN() 函数
如果要判断的数据是NaN或者转为number的时候能转成NaN,结果就是true
⑤ JavaScript 中数字的有效范围
1. JS 中能表示的最大的数字: 1.7976931348623157e+308
2. JS 中能表示的最小的正数: 5e-324
3. 如果超出有效范围,用 Infinity、-Infinity 表示
4. 函数 isFinite() 可以判断一个数字是否是有效数字,如果是有效数字结果是true
无效数字: Infinity、-Infinity、NaN
string 字符串类型
① 字符串的表示方式
js
// 需要使用单引号或双引号表示字符串的直接量
// 单引号定义的字符串内容中不要有单引号,双引号定义的字符串内容中不要有双引号
var msg01 = 'Hello"高小乐';
var msg02 = "你好'老头乐";
② 转义字符
\n 换行
\' 单引号
\" 双引号
\\ 转义\本身
\uXXXX 四位十六进制表示unicode字符串
boolean 布尔类型
true 表示是、肯定、正确
false 表示否、否定、错误
null 和 undefined
null 空,如果创建了一个变量,暂时不知道赋什么值,可以先赋值null
undefiend 未定义,没有赋值的变量在使用的时候会自动得到undefined
数据类型转换
数据类型转换的规则
① 其他类型转为 number 类型
js
其他类型数据转为数值类, 使用Number()函数
字符串: 纯数字字符串转为对应数字、空字符串转为0, 其他都是NaN
布尔值: true->1 false->0
null: 转为 0
undefined: 转为 NaN
其他类型数据转为数值类, 使用parseInt()和parseFloat函数
用于从字符串中提取数字,其他类型的数据都是转为NaN
以数字开头或者纯数字,可用从字符串中提取数字部分;
空字符转为NaN
parseInt获取小数点之后,提取整数;parseFloat提取浮点数
string 转为 number:
js
1, 纯数字字符串转为对应的数字,如 '12.23'、'0xab'、'2.2e2' 等
2. 空字符串转为 0
3. 其他形式的字符串转为 NaN 表示一种状态。
字符串转number之前,会自动去掉两端所有的空格!取掉空格之后剩下的内容再转。
boolean 转为 number:
true -> 1
false -> 0
undefined 转为 number:
转为 NaN
null 转为 number:
转为 0
② 其他类型转为 string 类型
js
数据是什么样转为字符串,变为字符串中的内容
数字转为字符串: 原样转换, 十六机制和科学计数法表示的数字转换后是十进制的数字
其他类型,原样转换输出
③ 其他类型转为 boolean 类型
js
数字转为布尔值: 0转为false;其他都是true
字符串转为布尔值: 空字符串转为false, 其他都是true
null 转为 flase
undefined 转为 false
number -> boolean:
1. 0、NaN 转为 false
2. 其他数字都转为 true
string -> boolean:
1. 空字符转为 false
2. 其他字符串转为 true
字符串转 boolean 的时候,不会去掉两端的空格!
undefined -> boolean:
转为 false
null -> boolean:
转为 false
强制类型转换(显示转换)
① 强制把其他类型转为 number 类型的函数
Number()
parseInt() 提取字符串中的数字的整数部分
parseFloat() 提取字符串中的数字
parseInt()、parseFloat() 与 Number() 的区别:
1. parseInt()、parseFloat() 如果不是字符串,全部转为 NaN
2. parseInt()、parseFloat() 纯数字字符串、以数字开头的字符串转为有效数字
parseFloat() 和 parseInt 的区别:
parseInt() 提取字符串中的数字的整数部分
parseFloat() 提取字符串中的数字
可以使用 parseInt 来提取数字中的整数部分!
② 强制把其他类型转为 string 类型的函数
String()
③ 强制把其他类型转为 boolean 类型的函数
Boolean();
自动类型转换(隐式转换)
1. 如果数据不是当前运算环境所需要的类型,就会发生数据类型自动转换,转换规则与强制类型转换一致
2. 当前运算环境一般由运算符决定
JavaScript 是弱类型语言,所以可以进行自动类型转换。
在某种运算环境下,数据自动转换类型:
数值的运算环境, 表达式中有数字运算符: + - * / % ++ --
字符串的运算环境, 表达式中有+,且一边是字符串, 另外边的数据肯定自动转为字符串
布尔值的运算环境, 条件判断的时候 if (数据) 数据会自动转为布尔值
自动类型转换的规则同强制类型转换的规则是一致的。
prompt数据类型转换
var num = +prompt('请输入一个数');prompt前加+能把变量转化为数字型
js
// 获取相关元素
var input01 = document.querySelector('#input01');
var input02 = document.querySelector('#input02');
var btn = document.querySelector('#btn');
var resBox = document.querySelector('#res');
// 创建子线程 子线程的代码会执行
var worker = new Worker('./child.js');
// 点击计算按钮 向子线程发送数据
btn.onclick = function() {
// 定义向子线程发送的数据 ‘+’ String 自动转换为 Number
var nums = [+input01.value, +input02.value]
// 向子线发送数据
worker.postMessage(nums);
};