08-JavaScript语法篇1

一、字面量、变量、常量

  • 字面量:字面量就是一个值,比如变量的值或者常量的值
  • 变 量:定义完成后,可以修改的数据,var关键字 定义
  • 常 量:定义完成后,固定且不能改变的数据,const关键字 定义
总结: 常量与变量的区别: ① 常量与变量的存储方式是一样的,只不过常量必须要有初始值,而且值不允许被修改,而变量可以无初始值,且可以多次赋值。 常量与字面量的区别: ① 常量与字面量均不会被改变,常量为存储数据的容器,而字面量为等号右侧的值,字面量是由字符串,数字等构成的字符串或数值。

二、数据类型
  1. 程序在运行过程中会产生各种各样的临时数据, 为了方便数据的运算和操作, JavaScript对这些数据进行了分类, 提供了丰富的数据类型;
数据类型划分:
① 简单数据类型:Number、String、Boolean、Undefined、Null
② 引用(复杂)数据类型:Object
数据类型查看:typeof 操作符,会将检查的结果以字符串的形式返回给我们
  1. 简单数据类型
Number:
① 在JS中所有的数值都是Number类型(整数和小数)
var num1= 123; var num2= 3.14; console.log(typeof num1); console.log(typeof num2);

② 由于内存的限制,ECMAScript 并不能保存世界上所有的数值
// 最大值:Number.MAX_VALUE console.log(Number.MAX_VALUE); // 最小值:Number.MIN_VALUE console.log(Number.MIN_VALUE); // 无穷大:Infinity, 如果超过了最大值就会返回该值 console.log(Number.MAX_VALUE + Number.MAX_VALUE); // 无穷小:-Infinity, 如果超过了最小值就会返回该值 console.log(typeof Infinity); console.log(typeof -Infinity);

③ NaN 非法数字(Not A Number)
JS中当对数值进行计算时没有结果返回,则返回NaN
var num = NaN; console.log(num); console.log(typeof num);

注意:JS中整数的运算可以保证精确的结果
在JS中浮点数的运算可能得到一个不精确的结果
String:
① 字符串由单引号或双引号括起
② 使用字符串注意事项
  • 不能一单一双,必须成对出现
  • 相同引号不能嵌套,不同引号可以嵌套
  • 给变量加上引号, 那么变量将变为一个常量
Boolean:
布尔型也被称为逻辑值类型或者真假值类型, 只能够取真(true)和假(false)两种数值
  • 任何非零数值都是true, 包括正负无穷大, 只有0和NaN是false
  • 任何非空字符串都是true, 只有空字符串是false
  • 任何对象都是true, 只有null和undefined是false
var bool1 = Boolean(0); console.log(bool1 ); var bool2 = Boolean(1); console.log(bool2 ); var bool3 = Boolean(-1); console.log(bool3 ); var bool4 = Boolean("hello"); console.log(bool4); var bool5 = Boolean(""); console.log(bool5 ); var bool6 = Boolean(undefined); console.log(bool6 ); var bool7 = Boolean(null); console.log(bool7);

Null和Undefined:
① Undefined是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined
undefined是Undefined类型的字面量,undefined和168、 "itlike"一样是一个字面量,Undefined和Number、String一样是一个数据类型,typeof对没有初始化和没有声明的变量都会返回undefined
② Null 类型也是只有一个值的数据类型,这个特殊的值是 null
从语义上看null表示的是一个空的对象,所以使用typeof检查null会返回一个Object
undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true
【08-JavaScript语法篇1】三、数据类型转化
  1. 转换成字符串类型
    终极大法:拼接字符串方式
    任何数据和 + " " 连接到一起都会转换为字符串
  2. 将其它类型转换为Number类型
① 字符串转数字:
  • 如果字符串为空或者是一个全是空格的字符串,则转换为0
var s2 = ""; var r2 = Number(s2); console.log(r2); var s3 = ""; var r3 = Number(s3); console.log(r3);

  • 如果字符串中有非数字的内容,则转换为NaN
② 布尔转数字
  • true 转成 1,false 转成 0
③ null和undefined转数字
  • null转数字为0
var s1 = null; var r1 = Number(s1); console.log(r1);

  • undefined转数字为NaN
var s2 = undefined; var r2= Number(s2); console.log(r2);

  1. parseInt()函数/parseFloat()函数
① 使用意义
Number()函数中无论字符串中是否存在有效整数都会直接返回NaN,
利用parseInt()和parseFloat()可以提取字符串中的有效整数和浮点数
② parseInt()
  • 有两个参数,第一个参数是要转换的字符串,第二个参数是要转换的进制
  • 从第一位有效数字开始,直到遇到无效数字
  • 如果第一位不是有效数字,则直接返回NaN
var s1 = "10rem"; var r1 = parseInt(s1); console.log(r1); var s2 = "200X300"; var r2 = parseInt(s2); console.log(r2); var s3 = "itLike001"; var r3 = parseInt(s3); console.log(r3); var s4 = ""; var r4 = parseInt(s4); console.log(r4);

③ parseFloat()
  • 不支持第二个参数,只能解析十进制数
  • 如果解析的内容里只有整数,则只解析成整数
  • 如果第一位不是有效数字,则直接返回NaN
  • 从第一位有效数字开始,直到遇到无效数字
④ 使用注意
  • 对非String使用parseInt()或parseFloat(), 会先将其转换为String类型然后在操作
var s7 = false; var r7 = parseInt(s7); console.log(r7);

  1. +和-0运算符
  • 添加+号, 不会修改数据的正负性
var s1 = "12306"; var r1 = +s1; console.log(r1); console.log(typeof r1); var s2 = "1.01"; var r2 = +s2; console.log(r2); console.log(typeof r2); var s3 = "20rem"; var r3 = +s3; console.log(r3); console.log(typeof r3); var s4 = true; var r4 = +s4; console.log(r4); console.log(typeof r4); var s5 = false; var r5 = +s5; console.log(r5); console.log(typeof r5);

  1. 转成布尔类型
  • Boolean() , 0 ''(空字符串) null undefined NaN 会转换成false 其它都会转换成true
console.log(Boolean(0)); console.log(Boolean('')); console.log(Boolean(null)); console.log(Boolean(undefined)); console.log(Boolean(NaN)); console.log(Boolean(-1)); var str = 'itLike'; var num1 = 123; var num2 = -1; console.log(Boolean(str)); console.log(Boolean(num1)); console.log(Boolean(num2));

    推荐阅读