JavaScript学习DAY1

DAY1

一、JavaScript发展史

1、javascript是1995年网景公司雇佣布兰登开发的全新语言

2、javascript最初是为了实现浏览器客户端交互

3、ECMAScript与javascript关系:前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。

二、书写方式

  • 行内式

    • + a 标签 `<a href="javascript:alert(123);"></a>`
      + 非 a 标签  `<div οnclick="alert(123);"></div>`
      
  • 内嵌式 可以写在页面的任意一个位置 但是建议书写在 body 结尾

<script src="./test.js">
    // 在这儿写的任何代码都不会起作用
    /*多行注释*/
</script>

外链式 引入了外部文件的 script 标签里面不能再写 js 代码 写了也没用

<script	src="index.js"></script>

三、输出语句

  • alert() 提示内容
  • console.log() 向文档中输出内容
  • document.write() 向控制台打印输出日志信息
  • prompt()
  • confirm() 确认内容

四、变量

存储数据的容器
声明变量使用 var 关键字

  • 变量的命名规则
    • 不能使用关键字或保留字
    • 不能使用中文
    • 由 $ 数字 字母 _ 组成
    • 不能以数字开头
    • 不能超过 255 个字符
    • 严格区分大小写
  • 变量的命名规范
    • 语义化
    • 尽量使用驼峰命名法

声明多个变量的时候 用 , 隔开

五、数据类型

  • 基本(简单)数据类型

    • 数值型 number

      • NaN Not a Number 不是一个数字
    • 字符型 string

    • 布尔型 boolean(true&false)

    • 空型 null

      + 表示拿到的数据为空,就是没有的意思

      ​ + 清除变量的值

      ​ + 起一个占位的作用

      ​ + 注意点:

      ​ 1、null的typeof的返回值不是null,是object

      ​ 2、尽量不要去使用name,因为它也是关键字,变量命名的时候top表示的是window,不能使用

      ​ + null型小故事:

      ​ 语言设计者最初设计语言的时候,因为其他语言里面数据类型也有空型,js在被设计的时候其实也借鉴了

      ​ 很多其他语言的语法和思想,例如,java、c等等。把空型直接归纳在了基本数据类型里面,结果最后发现

      ​ null返回的结果是object,所以为了区分又在空型上衍生出了一个新的基本数据类型undefined

    • 未定义型 undefined

      + 一个变量声明了但是未赋值,返回的是undefined

      ​ + undefined主要是为了和null做区分

      ​ + 注意点:

      ​ 1、一个未被声明的变量,提示信息也是未定义(报错信息)

      ​ 2、如果前面的代码报错,后面的代码就不再执行了(阻塞)

  • 引用(复杂)数据类型

六、转换数据类型

  • 转换为数值型

    • Number(变量) 把要解析的数据当成一个整体

    • parseInt(变量)

      ​ 从第一位开始检查,是数字就转换,直到一个不是数字的类容

      ​ 开头就不是数字,直接返回NaN

      ​ 从左到右识别 不认识小数点

    • parseFloat(变量)

      ​ 从第一位开始检查,是数字就转换,直到一个不是数字的类容

      ​ 开头就不是数字,那么直接返回NaN

      ​ 从左到右识别 认识并且只认识一个小数点

    • 除了 + 以外的其他运算符号

  • 转换为字符型

    • String(变量) 所有数据类型都可以
    • 变量.toString() 有一些数据不能通过toString()方法,比如undefined和null
    • + 只要两侧有一个是字符串 就是拼接的作用
  • 转换为布尔型

    • Boolean(变量)
      只有 5 个数据转换出来为 false
      0 '' NaN null undefined

    ​ Number()把其他类型转成数值类型

    ​ + 注意点:

    ​ 1、把布尔类型的true转成数值类型结果是1

    ​ 2、把布尔类型的false转成数值类型结果是0

    ​ 3、把空型转成数值类型结果是0

    ​ 4、把未定义类型转成数值类型结果是NaN

    ​ 5、把字符串不是纯数字的转成数值类型结果是NaN

    ​ String()把其他类型转成字符串类型

    ​ + 后面要学习前后端交换,数据交换,在实际开发中这种应用场景非常多

    ​ + 前后端数据交换要求(规定)的数据格式就是字符串类型,其他类型不识别

    ​ Boolean()把其他类型转成布尔类型

    ​ + 注意点:

    ​ 1、把数字1或者大于1还有小于1的数值类型转成布尔结果是true

    ​ 2、把Infinity(正无穷大)或者-Infinity转成布尔类型结果是true

    ​ 3、把数字0转成布尔类型结果是false

    ​ 4、把NaN转成布尔类型结果是false

    ​ 5、把字符串的0转成布尔类型结果是true

    ​ 6、把空字符串(没有空格)转成布尔类型结果是false

    ​ 7、把空型转成布尔类型结果是false

    ​ 8、把未定义类型转成布尔类型结果是false

七、检测数据类型

  • typeof 只能准确检测基本数据类型

     <script type="text/javascript">
       
        var a;
        alert(typeof a);  // undefined
     
        a = 998;
        alert(typeof a); // number
      
        a = "用心学习";
        alert(typeof a); // string
     
        a = true;
        alert(typeof a); // boolean
        
     </script>
    
  • isNaN 判断一个字符是否为非数字 如果是数字返回false,如果非数字返回true

八、操作符

  • 运算操作符
    + - * / % ++ --

     <script>
      
        alert(1234 / 1000 * 1000); // 1234
       
        var s = "12";
        s -= 10;
        alert(s);  // 2
      
        var s = "aa";
        s -= 10;
        alert(s);  // NaN       Not a Number 不是一个数字
      
        var s = "12";
        s += 10;
        alert(s);       // 1210
       
    </script>
    
    
  • 比较操作符
    > < >= <= ==(只判断值是否相等) ===(不仅判断值也会判断数据类型) !=(只判断两边的值是否相等) !==(不仅判断值也判断数据类型是否相等)

  • 赋值操作符
    = += -= *= /= %= num *= 3 // num = num * 3

  • 逻辑操作符

    &&与、并且 ||或者 !非

九、隐式数据类型转换:

​ 1.字符串加数字,数字就会转成字符串。

​ 2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。

​ 字符串减数字也一样。两个字符串相减也先转成数字。

​ 3.乘,除,大于,小于跟减的转换也是一样。

​ 隐式数据类型转换:

​ 1.undefined等于null

​ 2.字符串和数字比较时,字符串转数字

​ 3.数字为布尔比较时,布尔转数字

​ 4.字符串和布尔比较时,两者转数字

​ 关于几个等号问题(重点):

​ + = 一个等号表示赋值

​ + == 两个等号表示比较,会进行隐式数据类型转换

​ + === 全等于,也是比较,只有满足两个条件的时候才会为真

​ 条件:

​ 1、当值相等时

​ 2、当数据类型相等时

上一篇:[CISCN2019 华北赛区 Day1 Web1]Dropbox复现


下一篇:通信协议