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

三、数据类型转化

  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)); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章