一、认识js

js概念:运行在浏览器端(客户端)的解释性脚本语言
       (js引擎:执行js代码:从上往下一行一行执行)
js的作用:
    html:结构(骨架)
    css:表现(美化)
    js:行为(动效,轮播图。tab切换,楼层、拖拽。百度搜索,表单验证,登录注册,百度换肤等等...)
js的核心:
    (ECMA:规范js语法       W3c:规范html和css)
    1.ECMAScript:制订的是js的语法规范
    2.BOM:(borwser object model)浏览器对象模型,提供了一套操作浏览器的api(打开open和关闭close浏览器窗口,前进后退(go(-1))
    3.DOM:(docuemnt object model)文档对象模型,提供了一套操作页面(页面的标签)的api
    说白了。bom和dom是通过js的方式来操作页面和浏览器的

二、js的基础语法

1.js代码的书写

js代码的书写
    1.行内式  (极度不推荐)
        a标签的    <a href="javascript:js代码;">百度</a>
        非a标签的    <buttor 行为属性=“js代码”>按钮</button>
    2.内嵌式   (不推荐)
        书写方式:<script></script>
        书写位置:可以在任何位置书写<script></sctipt>,但是不推荐写在最上面,推荐写在最下面
        执行顺序:可以有多个script标签,从上往下执行
    3.外链  (推荐)
        书写方式:<script src="demo.js"></script>
        注意:1.在外链式的写法中,script标签内不代码不执行
                   2.demo.js  中直接写js代码

2.js注释

注释:多行注释和单行注释
作用:对代码的解释说明
单行注释:ctrl+/
多行注释:alt+shift+A

2.1 js变量

如何定义变量:
    最长用的方式:
        var x=20000;//声明一个变量x,同时将20000赋值给x
    var:声明变量用的(告诉计算机,x是一个新成员,变量x就可用了)
    空格
    x:变量名(类似类名,自己取的,不要瞎写)
    =:赋值(将右边的天赋值给左边)将20000赋值给x
    
    其他方式:var x;//声明一个变量
            x = 20;//用的时候在进行赋值
-------------------------------------------------------------------------------------------------------------------------------- 
            同时声明个变量,用的时候再赋值
            var a,b,c;
            a=20;
            b=30;
            c=40;
-------------------------------------------------------------------------------------------------------------------------------- 

 同时声明个变量,有的赋值,有的用的时候再赋值
            var x = 10,y =20,z;
            z=30;
-------------------------------------------------------------------------------------------------------------------------------- 
            var x = 10,y = 20, z=40;

3、输出语法

输出方式:
    1.alert(内容):弹出内容(弹出框)
        注意:内容:直接写数字(小数整数都可以)
                  文本(单引号或者双引号引起来的)
                  变量
    2.console.log(内容):控制台输出
        注意:内容:直接写数字(小鼠整数都可以)
            文本(单引号或者双引号引起来的)
            变量
    3.document.write(内容)  页面输出
        注意:内容:直接写数字(小数整数都可以)
            文本(单引号或者双引号引起来的)
            变量
            支持标签的

4.js的命名规则和规范

规则:(规则是必须遵守的,不遵守就报错)
            1.组成部分:数字,字母,下划线,美化符号$
            2.不能是数字开头
            3.不能是关键字和保留字(现在还不是关键字,后期可能会变成关键字)
            4.严格区分大小写
规范:(约定俗称的需要大家共同遵守)
            1.驼峰命名法 applePrice(从第二个单词开始,单词的后字母大写,第一个单词全部小写)
            2.见名识意(applePrice:苹果的价格)
                name
                age
                sex
                weight
                height
           3.不推荐中文(支持中文)

5.js的数据类型及类型转换

1.数据类型(numbler):
            一切数字都是数值类型(包括二进制,十进制,十六进制等)
            NaN(not a number),一个非数字
2.字符串类型(string)
           被引号包裹的所有内容(可以是单引号也可以是双引号)
3.布尔类型(boolean)
            只有两个(true 或者 false)
4.null类型(null)
            只有一个,就是null,表示空的意思
5.undefined类型(undefined)
            只有一个,就是undefined,表示没有值的意思

6.数据类型

两大类:
    基本数据类型:
        Number类型          数据类型
        String类型          字符串类型
        Boolean类型         布尔类型
        null类型          空类型
        undefined类型         未定义类型
        引用数据类型:(了解)
         Object
Number类型  数值类型
        1.整数
        2.小数
        3.10e5(科学计数法)10*10的5次方
        4.十进制   八进制  十六进制  二进制
        5.NaN(not a number):不是数字

String类型 字符串类型
        1.单引号或者双引号引起来“123” 'abc'
        2.一段文本

Boolean类型 布尔类型
        1.true:真,计算机会把true存储成1
        2.false:假,计算机会把false存储为0
        
undefined类型 未定义类型
        1.只声明,为未赋值var x;
        2.声明变量,可以赋值成undefined
        
null类型,空类型
        var x = null;

7.检测数据类型

typeof 关键字来检测
语法:
            typeof(要检测的值)
            typeof 要检测的值
返回值(结果):
            1.哪种数据类型(number,string,undefined,object,booleam)
            2.一字符串的形式返回

8.数据类型的转换

数据类型之间的转换,比如数字转成字符串,字符串转成布尔,布尔转成数字

其他数据类型转成数据:
        Number(变量)
            可以把一个变量强制转换成数值类型
            可以转换小数,会保留小数
            可以转换为布尔值
            遇到不可以转换的都会返回NaN
        parselnt(变量)
            从第一位开始检查,是数字就转换,直到一个不是数字的内容
            开头就不是数字,那么直接返回NaN
            不认识小数,值能保留整数
        parseFloat(变量)
            从第一位开始检查,是数字就转换,直到一个不是数字的内容
            开头就不是数字,那么直接返回NaN
            认识一次小点
其他数据类型转换成字符串:
        1.变量.toString()
        2.String(变量)
        3.使用加发运算
其他数据类型转布尔值:
        1.Boolean(变量)在js中,只有“、0,null、nudefined、NAN”