JavaScript之变量、基本数据类型、表达式

心里有一束光,生活就充满希望 

 

一、变量

1.概念

变量是计算机用来存储数据的容器,可以保存任意的数据类型,松散类型。

2.关键字

  • var:声明的变量是松散类型,变量的作用域为全局作用域或者函数作用域,会有变量提升。
  • let:也是松散类型,let的作用域是块级作用域,并且不允许同一个作用域重复声明;由于let块级作用域特性,在循环体重使用可以避免循环体外的变量污染,同时也可以保证循环体内部代码块值的正确性。使用let会出现暂时性死区。
  •  const:`const`和`let`的行为基本一致,但是在声明时必须初始化该变量的值,并且不允许修改`const`声明值的引用地址。
  • * 注意:使用`let’和`var’声明同名,变量同样会报错,声明冗余。

3. 全局声明

在全局作用域使用`var’声明会自动成为`window'对象的属性,但是使用`let 不会成为`window 对象的属性。

4. 变量的提升

可以提前使用变量,后面在声明;因为JS有预解析,在执行所有代码前,会于都所有变量的定义。在变量提升时,只提升定义,不提升变量的值。

 5.命名规范

  • 严格区分大小写
  • 不能用关键字和保留字
  • 只能字母、数字、下划线_、美元符号$,且数字不能开头。
  • 遵循驼峰命名法

二、数据类型

1.分类

数据类型分为 基本数据类型 和 复杂数据类型;

基本数据类型有数字型,字符串型,布尔型,未定义,空;

复杂数据类型有object、function、array、Date、regExp等。

 2.基本数据类型

(1)number数值型

指所有的数字。

* 注意:NAN也是数字型,表示表示不是数值的数字类型(本来应该返回数值但由于出错没正确返回的值),NAN不等于它本身,判断是否是NAN需要调用isNAN()函数,能成功转的返回false,不能转的为true。

(2)string字符串型

  • 指人类的自然语言,需要引号包裹。
  • 字符串拼接:a、可以用加号拼接多个字符串或者变量。b、模板字符串:`${变量名}`。
  • 符串的length属性:检测字符串的长度。

(3)Boolean布尔型

值为true和false,判断真假

(4)undefined未定义型

已声明但不赋值的变量,默认值都是undefined

(5)null空

赋值了,但内容为空;在声明一个值为对象类型时,可以使用null来初始化。

3.typeof数据类型检测

<script>
let num = 123;
let str = 'hello';
let n = '';
console.log(typeof num)  //返回number
console.log(typeof str)  //返回string
console.log(typeof n)  //返回string

console.log(typeof true)  //返回boolean
console.log(typeof null)  //返回object
console.log(typeof undefined)  //返回undefined
</script>

4.隐式转换

  • 某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
  • 转换规则:+ 号两边只要有一个是字符串,都会把另外一个转成字符串除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型。

5.显示转换

(1)转换为数值型

  • Number(数据)转为数字
  • Parseint(数据)转为整数
  • parseFloat(数据)转换为浮点数

(2)转换为字符型

  • String(数据)
  • 变量.tostring()

三、表达式

1.表达式的种类:算术、关系、逻辑、赋值。

2.算术运算符

  • 主要包括加、减、乘、除、取余
  • 乘除取余优先级高于加减,有括号先算括号里

 3.赋值运算符

  • 赋值 = :将等号右边的值赋值给左边变量

  • 快捷赋值:+=、-=、*=、/=、%=,在原数值基础上进一步运算

  • 自增运算:++

  • 自减运算:--
  • * 注意:自增和自减有前置运算和后置运算,前置运算(++a)先加减后使用,后置运算(a++)先使用后加减。

4.比较运算符(关系运算符) 

  • 关系运算符有:>、<、>=、<=、==、===、!==
  • >、<、>=、<=和数学里面的比较运算符性质一样
  • ==判断左右两边的值是否相等(会进行饮食转换后进行比较)
  • ===判断两边的类型和值是否相等
  • != 不相等
  • !==左右两边是否不全等
  • * 注意:NAN不自等;尽量不要比较小数,因为有精确度的问题;比较结果为布尔型,只会得到true和false。
  • * 拓展:isNaN()函数可以判断变量的值是否为NAN,只要传入的参数number()的执行结果为NAN,则isNaN()函数返回的结果就是true。

5. 逻辑运算符

  • ​​​​​​​ && 逻辑与:都真才真
  • ||  逻辑或:有真则真
  • !逻辑非:置反运算,真为假,假为真。
  • 逻辑运算符里的短路:&&逻辑与左边为false就短路,||逻辑或左边为true就短路。
  • 逻辑运算的优先级:非!> 与&& > 或|| 

 6.运算符的优先级

非运算 > 算术运算 > 关系运算 >相等运算 > 逻辑运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值