JS基础-变量和数据类型

150 阅读6分钟

变量

记录某一个之后会变量的数据,在JS中我们可以定义一个变量

在js中声明一个变量使用var关键字(variable单词的缩写)变量的赋值:使用 = 给变量进行赋值;

var name = www
// 也可以分开写
var name
name = 'www'
// 同时声明多个变量(1)
var name, age
name = 'www'
age = 19
// 同时声明多个变量(2)
var name = 'www',age = 19

变量的命名规则

  1. 第一个字符必须是一个字母、下划线( _ )或一个美元符号( $ )
  2. 其他字符可以是字母、下划线、美元符号或数字
  3. 不能使用关键字和保留字命名
  4. 变量严格区分大小写

变量命名规范(建议遵守)

  1. 多个单词使用驼峰标识
  2. 赋值 = 两边都加上一个空格
  3. 一条语句结束后加上分号
  4. 变量应该做到见名知意

变量的联系:定义变量,保存两个数字,并且对两个变量的数字进行交换

var num1 = 12
var num2 = 44
// 使用临时变量
var num3 = num1 // num3 = 12
num1 = num2 // num1 = 44
num2 = num3 // num2 = 12
// 不使用临时变量
num1 = num1 + num2 // num1 = 12+44 = 56
num2 = num1 - num2 // num2 = 56-44 = 12
num1 = num1 - num2 // num1 = 56-12 = 44

变量的使用注意

  1. 如果一个变量未声明就直接使用,那么会报错
console.log(message) // VM333:1 Uncaught ReferenceError: message is not defined
  1. 如果一个变量有声明,但是没有赋值,那么默认值是undefined
var info
console.log(info) // undefined
  1. 如果没有使用var声明变量也可以,但是不推荐(事实上会被添加到window对象上)
admin = 'why
console.log(admin)
console.log(window)
image.png

数据类型

有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型)

Number、Sring、Boolean、Undefined、Null、Object(复杂数据类型)、BigInt、Symbol

typeof用来确定确定任意变量的数据类型,会返回下列字符串之一:

undefined表示值未定义; 只有一个 undefined 值的独立类型。

null表示未知的值;只有一个 null 值的独立类型

boolean表示值为布尔值; 用于 true 和 false

string表示值为字符串; 一个字符串可以包含 0 个或多个字符

number表示值为数值,用于任何类型的数字:整数或浮点数

object表示值为对象(而不是函数)或 null; 用于更复杂的数据结构

function表示值为函数;

symbol表示值为符号;

typeof()的用法:

可能还会遇到另一种语法:typeof(x),它与 typeof x 相同

typeof是一个操作符,并非是一个函数,()只是将后续的内容当做一个整体而已;

Number类型

var num = 12
var num2 = 21.32

var result = 12 / 2
var result2 = 2 * 4 

除了数字和浮点数,还包括所谓的“特殊数值”也属于Number类型

Infinity:代表数学概念中的 无穷大 ∞,也可以表示-Infinity;比如 1/0 得到的就是无穷大

NaN:NaN 代表一个计算错误,它是一个错误的操作所得到的结果;比如字符串和一个数字相乘

数字表示的范围:

  • 最小正数值:Number.MIN_VALUE,这个值为: 5e-324,小于这个的数字会被转化为0
  • 最大正数值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308

isNaN 用于判断是否不是一个数字。不是数字返回true,是数字返回false。

String类型

字符串必须被括在引号里,有三种包含字符串的方式

双引号:"Hello"

单引号:'Hello'

反引号:``

// 如果在字符串里面本身包括单引号,可以使用双引号;如果在字符串里面本身包括双引号,可以使用单引号;
var meg = "我是'www'"

一些有特殊功能的字符可以通过转义字符的形式放入字符串中

image.png

**字符串本身的属性和方法

// 字符串拼接,通过+运算符
var hello = '你好呀'
var meg = '大笨蛋'
var helloMeg = hello + meg
// 获取字符串长度
console.log(helloMeg.length)

Boolean类型

Boolean(布尔)类型用于表示真假:仅包含两个值true 和 false,1为真,0为假

Undefined类型

只有一个值,就是特殊值 undefined

如果我们声明一个变量,但是没有对其进行初始化时,它默认就是undefined

// 如果变量刚开始什么都没有,我们可以初始化为0、空字符串、null等值
var message
console.log(message) // undefined

Object类型

Object 类型是一个特殊的类型,其他的数据类型我们通常称之为 “原始类型”,我们通常把它称为引用类型或者复杂类型; Object往往可以表示一组数据,是其他数据的一个集合

// 原始类型数据的初始化转为布尔值,都是false
var info2 = {
  num:0,
  age:''
}
if(age){ // age|num->都是false
  console.log('分支语句不会执行')
}

// 初始化为空对象,转为布尔值是为ture
var book = {} 
if(book){  // ture
  console.log('book为ture打印')
}

Null类型

null类型通常用来表示一个对象为空,建议初始化为null,null转为布尔值为false

  • null当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为null
  • undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到
console.log(typeof null) //object

数据类型的转换

字符串转换

  • 隐式转换

字符串和其他类型进行+操作:运算符左右两边有一个是字符串,另一边会自动转成字符串进行拼接

var num = 11
var str = num + '' // typeof str->string

某些函数的执行也会自动将参数转为字符串类型

  • 显式转换

    调用String()函数

var num1 = 9999
var str1 = String(num1)

调用toString()方法

数字转换

  • 隐式转换

在算数运算中,通常会将其他类型转换成数字类型来进行运算

var num = '12'
var num2 = '2'
var result = num + num2 // 122
var result = num * num2 // 24
var result = num / num2 // 6
  • 显示转换

使用Number()函数来进行显式的转换

var num = '33'
var result = Number(num) // typeof result-> number

其他类型转换数字的规则

image.png

console.log(Number('      123           ')) // 123
console.log(Number('abc123')) // NaN
console.log(Number('')) // 0

布尔值转换

  • 隐式转换

转换规则如下:

image.png

//  一些编程语言(比如 PHP)视 "0" 为 false。但在 JavaScript 中,非空的字符串总是 true
console.log('0') // ture

调用 Boolean(value) 显式地进行转换

var result = Boolearn(null) // false