JavaScript - Day01 - 基本语法

一、JS的介绍

1.JS的由来:(1)网景公司----布莱登 · 艾奇----javascript

                      (2)ECMAScript

2.JS概念:(1)javascript是一个需要依附其他语言的脚本语言,必须依附HTML才能实现,需要嵌

                          套在HTML里面JS才能运行

                  (2)可以跨平台运行

                  (3)使用面向对象的思想编程

3.JS组成:ECMAScrip----语法标准,DOM----操作html文档的标准,BOM----操作浏览器的标准

4.JS和H5的关系: H5新增的许多标签,很多都需要使用JS来实现功能

5.JS的应用场景:表单验证、动效、网页游戏、物联网开发、网页开发(app、软件、小程序)

三、JS的基本使用

1.依赖html运行----在html中通过script双标签执行JS代码

2.JS的基本写法:(1)行内----直接给标签添加属性

                             (2)内联----给标签添加属性

                             (3)外联----引入外部文件<script  src='路径'>

3.JS的输出方式:(1)alert(数据)------------------以弹窗形式显示-给用户通知、提示

                             (2)document.write(数据)---------以文本形式在body中显示

                             (3)prompt(数据)--------------------可输入的内容弹窗

                             (4)confirm(数据)-------------------询问用户是否确认操作的弹窗,有取消选项

                             (5)console.log(数据)--------在控制台中显示调试使用(注:使用最多)

4.JS的注释:(1)单行注释-------- ---//------------------ctrl+?

                      (2)多行注释-----------/*  */---------------alt+shift+a

四、变量

1.含义:是一个存储数据的容器,通过一个名字可以代表一个数据

2.定义:2-1. var   变量名字  -------(1)在内存里开辟了空间

                                                      (2)名字 = 数据 -----------数据放在了空间中

              2-2. var   变量名字 = 数据  ----------  (1)=  赋值号

3.变量名字的要求:(1)由字母数字下划线美元符号汉字组成

                                (2)不能使用数字开头

                                (3)不能使用关键字做变量名

var a = 1;
document.write(a); // 1
var b = a + 2;
document.write(b); // 3
var c = 6,d = 7;
document .write(c + d); // 13

五、数据类型

1.数字类型:number

        (1)NaN:检测一个数据是否是数字------表示一个非数字的特殊值

                         注意:1.NaN是一个number类型,表示一个非数字

                                    2.NaN不等于任何值,包括他本身

结果:NaN

注:a为字符串类型,不是数字,b为数字类型,减号两边类型不同,系统会偷偷的转换为同一类型输出,所以赋给c后,输出c的结果是NaN

      var a = "abc";
      var b = 2;
      var c = a - b;
      console.log(c);

        (1)isNaN():检测一个数据是否是数字

                         true:不是数字

                         false:是数字

结果:false    true

      var a = 123;
      var b = "abc";
      console.log(isNaN(a)); // false
      console.log(isNaN(b)); // true

        (2)小数计算可能不精准

                         原因:计算机内部通过小数转换成二进制计算,转的就不精准,结果不精准

                         解决:1.数字.toFixed(位数)--------强制保留小数点后几位                  

var a = 0.1 + 0.2;
console.log(a.toFixed(3))  //0.300-----保留三位小数

                                    2.让两个数字都乘以10的n次方,转成整数计算再除以10的n次方

结果:0.3

    var a = 0.1 + 0.2;
    console.log((0.1*10+0.2*10) / 10)

2.字符串类型:string--------- 一串字符用引号引起来

        (1)双嵌套单 或 单嵌套双 都可以,但引号不能嵌套自己,除非转义\                                                       " ' abc ' " , " \" abc \" "

        (2)document.write 只能输出字符串

        (3)字符串和字符串之间要用 + 进行拼接

3.布尔类型:boolean--------- 表示事物的两面性

        (1)true-----判断为真,显示true

        (2)false----判断为假,显示false

4.未定义类型:undefined--------变量定义了,但没有赋值

        (1)当一个变量定义了,但是没有给里面放数据 ---- 默认会输出undefined

5.对象类型:object---------一个变量存储多个数据-----复杂

6 .typeof看类型

        (1)typeof 数据 -------- 可以使用一个变量接收类型

        (2) typeof(数据) ------ 可以通过一个变量接收类型

    // 数字类型
    console.log(123456);          /*--- 在控制台页面上显示  */
    console.log(typeof 123456);   /*--- number数字类型 */

    // 字符串类型 
    var a = '今天天气好吗?';
    console.log(a);
    console.log(typeof a);    /*--- 查看是什么类型 string字符串类型 */

    // 未定义类型
    var b;
    console.log(b);          /* 未定义----当一个变量定义了,但是没有给
                                里面放数据---默认会输出undefined */
    console.log(typeof b);   /* ---没有赋值的话就显示undefined未定义类型 */

    // 布尔类型
    var a = 10,b = 15;
    console.log(a > b);             /* 判断为假,显示flase ;  真----true */
    console.log(typeof (a > b));    /* boolean 布尔类型 */

    // 对象类型 
    var obj = {                  
        name: "张三",
        age: 12 
    }                            /* 一个集合-----定义多个对象 */
    console.log(obj);            /* 控制台显示内容 */
    console.log(typeof obj);     /* 对象object类型 */

7.扩展---进制转换

    十进制------10

    八进制------010------答案:8---------1,2,3,4,5,6,7,10

    十六进制----0x10----答案:16-------1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    二进制

var a = 0xA;

console.log(a);

   二进制转换为十进制

   11011------二进制:

   2(4)  2(3)  2(2)  2(1)  2(0)  -----第一步: 从右至左依次按顺序乘次方(从0开始)

   2(4) + 2(3) + 2(2) + 2(1) + 2(0) -----第二步: 计算出各项的积

   2(4)*1 + 2(3)*1 + 2(2)*0 + 2(1)*1 + 2(0)*1 = 27 -----第三步: 每一项积再乘以对应的二进制数字,

                                                                                                 得出结果

   十六进制转换为十进制

   147--------十六进制: 提取公因数(从下至上)

                  结果:93-----------147 / 16 = 9---%3  

   349--------十六进制: 提取公因数(从下至上)----1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10

                  结果:15D----------349 / 16 = 21---%13 ,  21 / 16 = 1---%5   (把13转为十六进制为D)

8. 科学计数法

    var num = 3e+5;    /* 3乘10的5次方 */

    var num = 3e-5;    /* 3乘10的-5次方 */

 9.数字中的无穷

          数字中表示有无穷大 Infinity  

          数字中表示有无穷小 -Infinity  
10.计算机能存储的数值范围

console.log(Number.MAX_VALUE); // 内存能识别的最大值

console.log(Number.MIN_VALUE); // 内存能识别的最小值

11.js中对大小写敏感

    var a = 10

    console.log(A);

六、运算

1.算术运算:

        (1)加+  减-   乘*  除/   求余%

        (2)求余运算:通常用于判断一个数字是奇数或偶数。因为所有奇数对2求余的结果

                 都是1,所有偶数对2求余的结果都是0。

2.关系运算:

        (1)比较运算的结果一定是布尔值:true或者false

        (2)大于>      大于等于>=        小于<       小于等于<=

        (3)等于==        全等===           不等于!==          不全等!===

        (4)等于==     ---------只判断两边的值(数据)是否相等 ,忽略类型

        (4)全等于===     ---------先判断两边的类型是否相等,类型相等,才判断值是否相等,

                                                  如果类型不相等,后面直接不判断值

        (5)不等于!==     ---------将==的结果取反 

        (5)不全等于!===     ---------将===的结果取反

3.赋值运算:

        3-1.    =赋值     +=       -=        *=        /=          %=

        3-1.     =    ---------------  (1)左边是变量

                                             (2)右边是数据

                                             (2)作用是将右边的数据放在左边的变量中

        3-2.     +=    -------------  (1)a += 2  ----------    a =  a+2 的简写

4.逻辑运算:

        (1)&&   并且

        (2)||      或者

        (3)!    取反

七、自增自减运算

1.概念:让一个变量在自己原本基础上 +1或者 -1

2.自增: 2-1. 变量++ :当碰到输出、赋值、运算的时候放前面和后面是不一样的

                    (1)先用后加:符号在后,先进行其他操作,再进行自增

               2-2. ++变量 :

                    (1)先加后用:符号在前,先进行自增,再进行其他操作

2.自减: 2-1. 变量- - :当碰到输出、赋值、运算的时候放前面和后面是不一样的

                    (1)先用后减:符号在后,先进行其他操作,再进行自减

               2-2. - -变量 :

                    (1)先减后用:符号在前,先进行自减,再进行其他操作

八、类型转换

1.强制转换---------使用工具去转

           1-1. 强制转换为数字类型---Number(数据)

                     1.NaN代表虽不是数字,但是是数字类型

                     2.undefined类型转换为数字NaN

                     3.boolean类型里的ture转换为数字类型控制台显示是1,false显示是0

                     4.object类型null、[  ]转换为数字类型控制台显示的是0

                     5.非数字或非数字字符串转换后都是NaN

                     6.使用函数强制转换为数字类型

                             (1)parseInt(数据) :强制转换为整数(从前向后数,只取第一个整数)

                             (2)parseFloat(数据) :强制转换为数字(取数字,只取第一个数字,如果第一

                                                                                                            个数字有小数,那也取!)

                             (3)undefined强制转换为数字类型显示NaN

                             (4)boolean强制转换为数字类型显示NaN

                             (5)undefined强制转换为数字类型显示NaN

                             (6)首位是非数字的字符串强转为整数为NaN,首位是数字的字符串强转为

                                                                                                               整数是首位的数字

                      7.Number :空字符串、false、null、[ ]转成0

           1-2. 强制转换为字符串

                  1.String(a)

                       1-1.undefined转为字符串仍显示为undefined,但类型是字符串

                       1-2.true转为字符串仍显示为true,但类型是字符串,false转为字符串仍显示为true

                                                                                                                           但类型是字符串

                       1-3.null转为字符串仍显示为null,但类型是字符串, {}定义的对象转换结果为               

                                                              [object,Object], []定义的转换结果为括号里的字符串内容

                    2.   .toString----  .前必须是一个对象

                        2-1.undefined不能使用.toString

                        2-2.null不能使用.toString,但是{}和[]可以用

                        2-3.number和boolean可以使用.toString

                               (1)String

                               (2)数据.toString()----undefined和null不能同时使用

    var a = 123;
    console.log(a);//----此时为数字类型----控制台数字显示是蓝色
    console.log( String(a) );//---为字符串类型----控制台数字显示是黑色

           1-3. 强制转换为布尔类型: Boolean(a)

                  1.数字0转换为布尔型---flase  非0是ture

                  2.空字符串转换为布尔型---false  非空字符串是true

                  3.underfined转换为布尔型---false  

                  4.null转换为布尔型---flase ---object(null)  {}和[]都是true

                  5.Boolean:0、空字符串、undefined、null转成false、其他都是true

2.隐形转换

       1-1. 字符串加数字=拼接

                         "123"+5=1235

        1-2.  数学运算符号

                         true+flase=1

        1-3. 数字和字符串作比较

                         '6'>5 ----true

//1.数学运算时转换为数字类型-----会将左右两边的数据都转成数字进行数学运算
var a = true;
var b = false;
var c = a + b;
console.log(c);


//2.当有一个是字符串,另一个也会隐形的转换为字符串,然后进行拼接
var a = '1234';
var b = 88888;
var c = a + b;
console.log(c);

var a = 'abc';
var b = 66666;
var c = a + b;
console.log(c);


//3.比较运算符----左右两边有一个是数字,另一个也会隐形的转换为数字,然后进行数字大小的比较
var a = '16';
var b = 3;
console.log( a > b);
console.log( a < b);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值