前端学习_06.Script语法基础

ECMAScript语法基础

目录

ECMAScript语法基础

弱类型语言

类型的定义

转换类型

检验类型


弱类型语言

  • 语法约束不是很严格:变量定义、参数定义、方法调用等等

 

类型的定义

  • 声明统一用var进行声明(弱类型表现),不需要具体到指定类型不声明
  • 赋值的时候才确定指定类型是什么
  • 类型分两大类:
    i.基本类型:number、string、boolean、undefine、function(Function)
    ii.对象类型:一些对象定义,比如:Array、Date、Object(Number、String、Boolean、Function、window、document、Math、null)、等

 

转换类型

  • 数字字符串变量进行算术运算时隐式类型转换为number
    • "11"-1+2 结果为12,过程:
      • "11"字符串转换为number,进行-减数运算,值为10 (类型:number)
      • 10 和 2 进行加数运算,最终结果为12 (类型:number)
    • "11"+2-1 结果为111,过程:
      • "11"字符串和数字2 作字符串连接,值为"112"(类型:string)
      • 112"字符串转换为number,进行-减数运算,最终结果为111 (类型:number)
  • 部分变量进行逻辑运算时隐式类型转换为boolean
    • 转为false来进行识别:
      • 0 、-0、 null 、 undefine 、空字符串、!1

ii.转为true来进行识别:

(1)非0数字、非空字符串、!0
  • 转换为数字
    i.Number()方法
    (1)不能解析不是纯数字的字符串
    (2)空字符串转换为0
    (3)Boolean值中true转换为1,false转换为0
    (4)不能解析时返回NaN(类型:number,但值为NaN----‘不是个数字’)
    ii.parseInt()方法可解析一个字符串,并返回一个整数。
    (1)只有字符串中的第一个数字会被返回,其余部分截去。
    (2)空字符串不能解析转换
    (3)不能解析时返回NaN(类型:number,但值为NaN----‘不是个数字’)
    iii.parseFloat()方法解析一个字符串,并返回一个浮点数
    (1)只有字符串中的第一个数字会被返回,其余部分截去。
    (2)空字符串不能解析转换
    (3)不能解析时返回NaN(类型:number,但值为NaN----‘不是个数字’)
    iv.算术运算加(+)和减(-)能在以下情况下降字符串转换为数字
    (1) + "string" 转换为NaN(类型:number,但值为NaN----‘不是个数字’)
    (2) + "11" 转换为11 (类型:number)

 

检验类型

  • 检验是否是非数字值,isNaN函数
    i.语法isNaN(obj)
    ii.返回的是一个布尔值
    (1)isNaN(NaN) 返回值为true
    iii.校验内容:可以是字符串也可以是number
  • 检验类型,typeof函数
    i.语法typeof obj
    ii.返回基本类型(五种)或者object对象类型 的字符串
    (1)typeof NaN 返回值为"number"
    (2)typeof null 返回值为"object"
    (3)typeof new Array() 返回值为"object"
    (4)typeof new Date() 返回值为"object"
    (5)typeof function(){} 返回值为"function"
    iii.校验内容:不能用来判断日期和数组
  • 检验对象和函数,instanceof函数
    i.语法obj instanceof Object
    ii.返回的是一个布尔值
    (1)obj instanceof Array 可以判断变量是否为数组
    (2)obj instanceof Function 可以判断变量是否为函数
    (3)obj instanceof Date 可以判断变量是否为日期
    iii.校验内容:不能用来判断字符串和数字
  • 检验空数组
    i.语法(obj== false)
    ii.返回的是一个布尔值
    (1)非空数组(obj == false)返回 false
    (2)undefind(obj == false)返回 false
    (3)空对象(obj== false)返回 false
    (4)非空对象(obj== false)返回 false
    (5)空数组(obj == false)返回 true
    iii.校验内容:不能用来判断undefind和空/非空对象,不能判断["0"]和 []
  • 检验对象是否为空
    i.语法(Object.keys(obj)== false)
    ii.将对象转化为数组,再校验,返回的是一个布尔值
    (1)非空数组(Object.keys(obj)== false)返回 false
    (2)undefind(Object.keys(obj)== false)报错
    (3)空对象(Object.keys(obj)== false)返回 true
    (4)非空对象(Object.keys(obj)== false)返回 false
    (5)空数组(Object.keys(obj)== false)返回 true
    iii.校验内容:不能在空数组和空对象之间判断,不能判断["0"]和 []
  • 拓展constructor

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值