JS组成,变量,数据类型及转换

103 阅读5分钟

JS 的组成

  ECMAScriptDOHBOM三者共同组成
  1.ES:定义了JS的语法规范,描述了语言的基本语法和数据类型
    简单来说:JS怎么写,需要根据es的规定
  2.DOM(文档对象模型)
    有一套成熟的操作DOM节点的API,通过DOM可以操作页面中的元素(其实就是标签)
    比如棚:增加一个div,删除一个span,修改H1标签的内容
  3.BOM(湖览器对象模型)
    有一套成熟的操作BOMAPI
    比如:弹出框,浏览器跳转,获取浏览器相关信息获取湖览器尺寸

js 的三种书写方式

  1.行内式:   通过onclick
  例如:   <标签 onclick="alert('你好')"></标签>
  2.内嵌式:  
  使用   script  标签一般写在body标签的尾部
  3.外联式:
  使用script 引入 类似CSS的link引入
  <script src="待引入的js文件"></script>

js 定义变量

什么是变量?

  变量是计算机中存储数据的一个标识符,通过这个标识符可以找到内存中存储的数据
  变量相当于一个容器,可以存储任意类型的值

使用变量

  1.定义变量:  语法: var 变量名
    例如: var a   &nbsp; &nbsp;&nbsp;//定义变量名为a
  2.变量赋值:  变量名 = 值  ( = 叫做赋值号) 
    例如:a=100  &nbsp; &nbsp;&nbsp;//给a赋值100
  3  打印变量:console.log(变量名)

  *简化写法:var a=100

变量命名规则与规范(必须遵守,不遵守会报错)

  **1.规则(必须遵守的。如果不遵守会报错)**
    在书写变量名的时候,只能由数字字母下划线$符引(英文的)组成,并且不能以数字开头
    书写时区分大小写
    书写变量名时。不能使用关键字或者保留字作为变量名
    关键字:在js中具有特殊含义的字母组合,
    如:var if for function等
    保留字:在js中目前没有特殊含义,但在将来的某个版本可能会用到,所以此时也不能使用,在Es6还没出现之前具有的保留字,如Let const promise

  **2.规范(建议遵守,如果不遵守也不会报错)**
    变量名具有含义,符合见名知意
    尽量不要用字母作为变量名,除非是练习
    多个单词的组合名时,使用驼峰命名法(多个单词拼接时,后一个单词的首字母大写),如: bigbox -> bigBox
    

js数据类型(基本数据类型)

  1.Number类型
    数字类型:不区分整数浮点数
    10320e1.16 , -6 , -999都是数字
  2.String类型
    字符串类型:只要是引号包裹的内容,就是字符串类型(引号不区分单双引号)
  3.undefined类型: 他是一个数据,表明未定义
    变量只定义,不赋值的时候,默认的值就是undefined表明未定义
  4.BooLean类型(后续更多的使用在判断上)
    只有两个值一个是true 一个是false
    true: 代表真,正确的
    false:代表假,错误的
  5.NuLL类型: 代表空,
    本身是一种数据类型,只不过代表的是空(啥也没有)
    NuLLundefined不同!!!
    使用场景:在创建对象的时候,如果开始不知道对象内部有什么,可以给一个null
    类似于在创建变量的时候,只定义,不赋值默认是一个undefined

数据类型检测

  语法: typeof(要检测类型的值)
  注意:不能正确检测出null的实际类型,检测null是会显示object;
       因为null是空,视为空对象,因此会被当做对象输出.

数据类型转换(转数值/转字符串/转布尔)

**1.转换为数字类型**
    1.Number(数据)
    可以用于任何数据类型,将其转换为数字类型
      (1).字符串转数字
          如果转换的字符串是纯数字组成的,那么直接转换为数字
          如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0
          其他类型的字符串(不是空---空白---纯数字字符串)会转换为NaN.

      NaN:表示的是一个number的数字,但是没有办法通过常规的数字表明它,
      所以只能使用Na来代替.

      (2).布尔值转数字
          true转换为1
          false转换为0
          
      (3).undefined转数字
          会直接转换为NaN
          
      (4)nuLL转数字
          会直接转换为0
          
    2.parseInt(数据) : 转换为整数
        会将数据转换为number类型,并且值是整数
        (直接忽略掉小数点以后的值,并不是四舍五入)
        在转换的时候,如果数据是纯数字字符串或者是数字开头的字符串,
        那么会转换为数字,否则就是转换为NaN
        
    3.parseFloat(数据) : 转换为小数
        转换结果于parseInt类似,但是在转换小数的时候会保留小数点后的数字
**2.转换为字符串类型**
    (1). 变量 toString()  
          例如 : var a = 100
          console.log(typeOf(a.toString()),a.toString())    //输出为:string 100
        注意:undefinednull不能是用,JS不允许
    (2). String(变量)
        任何类型都可以转化,包括undefinednull
    (3). 扩展: 变量 + '空字符串'
        任何类型都可以转化,包括undefinednull
        
**3.转换为布尔类型**
  语法:Boolean(变量)
  转化为布尔值,也就是转化为true或者false
    (1).数字转为布尔值:
    只有0会转化为false,其余都为true
    (2).字符串转化为布尔值:
    只有空字符串会转化为false
    (3).undefinednull
    都转化为false