1. JavaScript是什么?  (简称JS)
    
    JavaScript是一门强大的解释型编程语言
    
    编程语言: 可以开发功能的语言
    
    解释型: 需要浏览器的内核进行改编, 编译成计算机可以识别的语言
   
    页面的组成 = html(结构) + css(样式) + JavaScript(行为交互)
    
    交互: 用户与计算机产生关联的一种行为
   
    静态页面: 页面内容不会发生任何变化的页面
    
    动态页面: 页面内容会随着时间/后台数据变化而发生变化的页面
   
    
    2. js写在哪?
    
    重点(内联式和外链式):
    
    内联式:
    
    js代码要写在script标签内部, 可以写在html文档的任意位置
    
    外链式:
    
    js代码要写在xxx.js文件内部, 需要在html文档中通过script标签的src属性引入
    
    了解:
    
    HTML标签事件属性:
    
    <开始标签 on事件=”js代码”></结束标签>
    
    a标签的href属性:
    
    <a href=”JavaScript:js代码”> 文字 </a>
   
    注意点:
    
    1.内联式和外链式不能混搭
    
    2.内联式一般写在html结构最后面
    
    3.外链式一般写在head标签内或者是html结构的最后面
   
    3. js的输出方式:
    
    浏览器的小弹框: alert(“文字”)  => 全写: window.alert(“文字”)
    
    注意点: 在书写js时, window可以省略
   
    页面书写方式: document.write(“内容”)
    
    注意点: 可以识别HTML标签
   
重点: 控制台输出: console.log(“文字”)
    4. 注释
    
    单行注释: ctrl + /
    
    多行注释: shift + alt + a
   
    5. 变量(重重点)
    
    变量: 变化的数据
    
    常量: 不变化的数据
   
    在js中如何定义变量和常量:
    
    语法: 声明 常量/变量名 = 值;
   
声明的作用: 向计算机申请一小块存储空间, 用来存放数据
    面试题: 声明变量的方式? 以及它们之间的区别
    
    var: 可以重复声明, 也可以重复赋值 (变量)
    
    let: 不可以重复声明,可以重复赋值 (变量)
    
    const:不可以重复声明, 不可以重复赋值 (常量)
   
    6. 标识符
    
    标识符: 需要程序员自己命名的东西, 比如变量名, 函数名…
    
    规则:
    
    1) 不允许数字开头, 但是允许数字结尾
    
    2) 支持_ $符号
    
    3) 区分大小写
    
    4) 支持大驼峰(UserName) 小驼峰(userName)
    
    5) 不支持关键词/保留词
   
    7. JS数据类型(重重点)
    
    基本数据类型( 5+1 ):
    
    String — 字符串(加了”‘`的数据)
    
    Number — 数字(不加引号的数字)
    
    比较特殊的数字类型—NaN  Not a Number不是一个数字
    
    boolean — 布尔值(不加引号的true/false)
    
    undefined — 未定义(变量未赋值时, 默认值为undefined)
    
    null — 空
   
symbol — 唯一的
    引用数据类型:
    
    object — 对象( {} )
    
    array — 数组
    
    function — 函数
   
    8. JS的数据类型转换:
    
    隐式类型转换: 计算机在运行过程中会自动将数据进行转换的方式
    
    强制/显式/手动类型转换: 通过一些指定的方式方法对数据类型进行转换
    
    parseInt( xxx )  — 转数字类型, 并取整
    
    parseFloat( xxx ) — 转数字类型, 并保留小数点
    
    String( xxx )  — 转字符串类型
    
    Number( xxx )  — 转数字类型(纯数字的字符串)
    
    Boolean( xxx ) — 转布尔值( 有值有数字为true , 无值或0为false )
   
    9. 运算符
    
    1) 算术运算符
    
    +   –   *  /
    
    %  取模(取余值)   7%3 = 1  ->  7/3 =2,余1  , 没有余值就是0
    
    ++ 自增1
    
    — 自减1
    
    前置: 先在自身+/-1, 再执行
    
    后置: 先调用自身, 下次调用时再+1
   
    2) 比较运算符
    
    >  >=  <  <=
    
    赋值: =
    
    双等于: ==  判断值是否相等, 不包含数据类型
    
    全等于: === 判断值和数据类型是否都相同
    
    !(非–取反)
    
    非等于: !=   先判断==的值, 再取反
    
    非全等于: !==  先判断===的值, 再取反
   
    面试题: null 和 undefined做比较, 得到的值?
    
    null和undefined都代表空值, 双等于返回true
    
    虽然都代表空值,但是数据类型不一样, ===返回false
   
    
    拓展:JS的版本
    
    HTML -> HTML5
    
    CSS  -> CSS3
    
    JS   -> ES5/6/7 /8/9/10/11/12
    
    JS的组成: DOM(文档document)   BOM(浏览器)    ECMAScript(JS的核心语法, 简称ES)
   
    学习JS的小技巧:
    
    一步一打印, 多逻辑画图
   
 
