js笔记寒假02


第二天

数据类型 (简略)

(数值,文本,图形,音频,视频等)

   变量 var

  1.js不区分小数和整数 Number (12.3 123 -9 1.2e3)

   NaN not a number 不是一个数字

   Infinity 表示无限大

   布尔值 ture false

     console.log(2>1)   ture
    console.log(1>2)   false

   逻辑运算符 && || !

   比较运算符

    =  //赋值
    == //等于(有缺点,类型不一样,值一样,判为ture 比如1和“1”)
    ===   ///绝对等于(类型一样,值一样,判ture)一般用这个
   

   NaN与所有的数值都不一样,包括自己

   只能通过isNaN(NaN)判断这个数是否是NaN

      isNaN(NaN)     ture
      isNaN(5)       false

  2、浮点数问题

   尽量避免使用浮点数进行运算,存在精度问题

 console.log((1/3)===(1-2/3))          false
 //
计算机是二进制的,浮点数会失去一定的精确度。

//根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值
 //所以采用绝对值判断
 console.log(Math.abs(1/3-(1-2/3))<0.00000001)   ture

  3、

   null 空 可能进行了定义之后为空

   undefined 未定义

  4、数组

   在其他语言中是一些类型相同的对象 在js中不需要这样

 var arr = [1,2,3,null,ture,"hello"];
 打印
 console.log(arr[0])     1
 console.log(arr[4])     ture
 console.log(arr[6])     undefined (数组下标越界后会显示)

   对象用大括号{}数组用[]

  5、

 var person = {
     name: "xi",
     age: 3,
     tags: ['js','java','web']
 }
 //每个属性之间用逗号隔开,最后一个不需要
 打印
 person.name    "xi"
 person.age    3

  6、

  i = 1;   //全局变量
  var i = 1//局部变量
  let i = 1//在Es6中,局部变量一般用let定义

  7、严格检查模式

   'use strict' //预防js的随意性导致产生的问题 必须写在第一行

数据类型(详细)

  1、字符串

   可以使用单引号或者双引号包裹

  2、转义字符 \

 \n  //换行
 \r   //回车符
 \t   //制表符
 unicode字符   \u4e2d 中
 ASCII字符

  3、多行字符串编写

var msg = `hello
world`(ese下面的键)

  4、模板字符串

let name = "xi";
let msg = `你好,${name}`
console.log(msg) 你好,xi

  5、字符串长度

var student ="student";
console.log(student.length) 7
//student.后会出现很多方法,都可以尝试使用
比如console.log(student.toUppercase()) STUDENT
console.log(student[0]) s
student[0]=1 错误,并不会改变
indexof //获得下标
console.log(student.indexof('t')) 1
substring //截取,左闭右开
console.log(student.substring(1)) tudent
console.log(student.substring(1,3)) tu