前言:

本文内容:数据类型快速预览、严格检查模式strict、字符串类型详解

推荐免费JavaScript基础讲解视频:【狂神说Java】JavaScript最新教程通俗易懂_哔哩哔哩_bilibili

数据类型快速预览

数值,文本,图形,音频,视频…

变量

不能以数字开头,可以是(字母,$,下划线)开头

1
var a=1;

number

1
2
3
4
5
6
123  //整数
123.33 //浮点数
1.232e2 //科学计数法
-99 负数
NaN // not a number
infinity //无穷大

NaN 与所有的值都不相等,包括自己。

字符串

1
2
'abc' 
"abc"

布尔值

1
2
true
false

逻辑运算

1
2
3
&&  //与(两个为真,结果为真)
|| //或(一个为真,结果为真)
! //非(取反)

比较运算符

1
2
3
=   //赋值
== //等于
=== //绝对等于(必须类型和值都相同才为true)

浮点数问题

1
2
 //因为精度损失 所以并不相等
console.log((1/3)===(1-2/3))

尽量避免使用浮点数进行运算。

解决办法:

1
console.log(Math.abs(1/3-(1-2/3))<0.00000001)

做差绝对值无限接近于0,近似认为二者相等。

null 和 undefined

  • null 空值
  • undefined 未定义

数组

Java的数值必须是相同类型的对象,JavaScript没有此限制。

1
2
3
// 数组 建议使用第一种定义方式
var arr = [1,2,3,'abc',null,true]
new Array(1,2,3,5,'hello');

数组下标越界会显示undefined

对象

对象是大括号,数组是中括号。

1
2
3
4
5
6
// 定义对象
var person = {
name: '张三',
age: 3,
tags: ['js','javascript','...']
}

取对象值

1
2
3
4
person.name
>'张三'
person.age
>3

严格检查模式strict

使用前提:

​ 需设置支持ES6语法
​ 严格检查模式 ‘use strict’
​ 语句必须写在第一行

1
2
3
4
5
6
7
8
9
10
/*
使用前提:需设置支持ES6语法
严格检查模式 'use strict'
严格检查模式语句必须写在第一行
*/
'use strict'
// 全局变量
var k = 1;
// ES6 局部变量建议都使用let定义
let i = 1;

字符串类型详解

  1. 正常字符串我们使用单引号''或双引号""

  2. 注意转义字符\

    1
    2
    3
    4
    5
    \'     //单引号
    \n //换行
    \t //制表符
    \u4ed //unicode字符
    \x41 //Ascll字符
  3. 多行字符串编写

    1
    2
    3
    4
    5
    6
    // 多行字符串
    let msg = `
    hello
    你好
    嘿嘿
    `
  4. 模板字符串

    1
    2
    3
    4
    // 模板字符串
    let name = '张三';
    let age = 21;
    let mess = `你好呀,${age}岁的${name}`;
  5. 字符串长度

    1
    console.log(str.length)

    字符串是不可变的

  6. 大小写转换

    1
    2
    3
    // 注意 这里是方法而非属性
    str.toUpperCase() // 大写
    str.toLowerCase() // 小写
  7. 一些常用方法

    1
    2
    3
    str.indexOf('s') // 获取下标
    str.substring(1) // 从第一个字符串截取到最后一个字符串
    str.substring(1,3) // 原理同上,且包含第一个,不包含第三个