js的数据类型 和运算符

103 阅读3分钟

js的数据类型

1. 简单数据类型 (基本数据类型)

  • 1.1 数字类型(number): 所有的整数和浮点数

  • 1.2 字符串类型(string): 在 JS 中, 只要是引号包裹的内容, 统称为字符串

  • var str1 = 'qwer'

var str2 = '!@#$%'

  • 1.3 布尔类型(boolean): 表明 对/错(真/假)

  • var boo1 = true     // 表明为真

        var boo2 = false    // 表明为假

  • 1.4 undefined类型 (undefined): 表明未定义, 通常我们不会给一个变量赋值为 undefined, 因为 变量定义但不赋值就是一个 undefined

  • var und1 = undefined

  • 1.5 null类型(null): 表明为 空对象指针 (空), 一般很少使用, 但是如果创建了一个对象, 但是不知道对象的值是什么的时候可能会给一个 null

var nul = null

数据类型检测 关键字 typeof

假设要检测的变量名为 box * 1. typeof(box) * 2. typeof box

null 的类型就是 null

  • 但是 typeof 这个方法有一点小问题, 它会将 null 识别为 object 类型

数据类型转换 1 Number(数据)

2 parseInt(数据)

3 parseFloat(数据)

一 转Number类型

Number(数据)

console.log(Number('10086'))----10086

console.log(Number('')) 空字符串 --- 0

console.log(Number(' ')) 空白字符串 --- 0

console.log(Number('123hh ')) 前边数字后字母--- NaN

console.log(Number('qwertyui'))没有数字的字符串 NAN

布尔值:true转为1,false转为0

console.log(Number(true)) 1

console.log(Number(false)) 0

console.log(Number(undefined)) NaN

console.log(Number(null)) 0

parseInt整形

console.log(parseInt(100))---100

// console.log(parseInt(100.666))---100

// console.log(parseInt('')) // 空字符串 --- NaN

// console.log(parseInt(' ')) // 空白字符串 --- NaN

// console.log(parseInt('!@#$%^&')) // 非空非空白字符串 --- NaN

// console.log(parseInt('qwerty')) // 非空非空白字符串 --- NaN

// console.log(parseInt('qwerty10086')) // 非空非空白字符串 --- NaN

// console.log(parseInt('10086qwerty')) // 字符串中开头为数字, 那么直接保留数字并忽略数字以后的所有内容 --- 10086

// console.log(parseInt('10086qwe999rty')) // 字符串中开头为数字, 那么直接保留数字并忽略数字以后的所有内容 --- 10086

// console.log(parseInt('100')) // 直接将字符串中的数字转为 数字类型---100

// console.log(parseInt('100.10086')) // 直接将字符串中的数字转为 数字类型---100

parseFloat(浮点型)

console.log(parseFloat(100.12))---100.12

console.log(parseFloat('100'))---100

console.log(parseFloat(true))---NaN

console.log(parseFloat(false))---NaN

console.log(parseFloat('100.12alal'))---100.12

console.log(parseFloat('alal100.12'))---NaN

console.log(parseFloat(100))---100

数据 - 0 也能转成Number

var box = '10086' console.log(box) console.log(box - 0)

二 转String(字符串)类型

  1. 变量/数据.toString()

问题: undefined 和 null 不能使用

  1. String(变量/数据)

什么类型都能转换为 字符串

  1. 变量/数据 + ' '

变量/数据.toString()

var box = 100 console.log( typeof (box), box)------Number 100 console.log( typeof (box.toString()), box.toString()) --------String '100'

toString转换布尔值 问题: undefined 和 null 不能使用

true

console.log(typeof(true), typeof(true.toString())) --------boolean string console.log(true, true.toString()) --------true 'true'

false

console.log(typeof(false), typeof(false.toString())) -------boolean string console.log(false, false.toString()) -------false 'false'

String(变量/数据) 什么类型都能转换为 字符串

console.log(typeof(undefined), typeof(String(undefined))) --------undefined string console.log(typeof(null), typeof(String(null))) --------object string console.log(typeof(String(100))) ----------string console.log(typeof(String(true))) ----------string

变量/数据 + ' '

console.log(typeof(undefined), typeof(undefined + '')) --------undefined string console.log(typeof(null), typeof(null + '')) object string

三 转布尔类型 1 Boolean(变量/数据)

2 !!变量/数据 一个! 表示得到这个数据取反后的布尔值 俩个! 表示得到这个数据的布尔值

// 数字转布尔值 非0即为真

// console.log(Boolean(0))------false

// console.log(Boolean(1))----true

// console.log(Boolean(-1))

// console.log(Boolean(100))

// console.log(Boolean(-10000))

// console.log(Boolean(1.567))

// 字符串转布尔值 只有空字符串会转为 false

// console.log(Boolean(''))-----false

// console.log(Boolean(' '))-------true

// console.log(Boolean('1234567'))

// console.log(Boolean('!@#$'))

// console.log(Boolean('qwerts'))

// console.log(Boolean('你好!@#$%qwert12345'))

// undefined 和 null

console.log(Boolean(undefined)) // false

// console.log(Boolean(null)) // false

!和!!

console.log(!undefined) ---- true

console.log(!!undefined) ----- false

算数运算符

      • / %
  • 注意: + 一般是给数字使用的, 但是如果 符号的任意一边有字符串类型的, 那么不在计算求和, 而是计算一个拼接

  • 并且拼接后的值是字符串类型的

  • 这也是为什么 一个数据 + ' ' 能够转换为 字符串类型

自增自减 ++ --

如果 符号 在 变量/数据 前, 先运算自增或者自减, 然后参与周围程序运算

如果 符号 在 变量/数据 后, 先参与周围程序运算, 然后自增或者自减

++num先加后用

num++先用后加

逻辑运算 &&(与) ||(或) !非

&& 逻辑与 逻辑且 (一假全假,全真为真)

  • 语法: 变量1/数据1 && 变量2/数据2

  • 运行规则: 会判断符号左边的变量的值, 转换为布尔值后

  • 如果符号左边布尔值为 true, 那么运行符号右边的代码或者返回符号右边的代码

  • 如果符号左边布尔值为 false, 那么直接运行符号左边的代码或者返回符号左边的代码

true && console.log('左边为 true 右边执行') false && console.log('左边为 false 右边就不会执行了')

|| 逻辑或(一真全真,全假为假)

  • 语法: 变量1/数据1 || 变量2/数据2

  • 运行规则: 会判断符号左边的变量的值, 转换为布尔值后

  • 如果符号左边布尔值为 true, 那么运行符号左边的代码或者返回符号左边的代码

  • 如果符号左边布尔值为 false, 那么直接运行符号右边的代码或者返回符号右边的代码

true || console.log('左边为 true 右边就不会执行了') false || console.log('左边为 false 右边才会执行')