js基础速成02-数据类型

数据类型

数据类型描述了数据的特征。数据类型可以分为两类:

  1. 原始数据类型
  2. 非原始数据类型(对象引用)

原始数据类型

JavaScript 中的原始数据类型包括:

  1. 数字 - 整数、浮点数
  2. 字符串 - 任何用单引号、双引号或反引号括起来的数据
  3. 布尔值 - true 或 false 值
  4. Null - 空值或无值
  5. Undefined - 一个已声明但未赋值的变量
  6. Symbol - 通过 Symbol 构造函数生成的唯一值

JavaScript 中的非原始数据类型包括:

  1. 对象
  2. 数组

原始数据类型是不可变的(不可修改)数据类型。一旦创建了原始数据类型,就无法修改它。

示例:

let word = 'JavaScript'

如果我们尝试修改存储在变量 word 中的字符串,JavaScript 应该会引发错误。任何用单引号、双引号或反引号括起来的数据类型都是字符串数据类型。

word[0] = 'Y'

这个表达式不会改变存储在变量 word 中的字符串。因此,我们可以说字符串是不可修改的,换句话说是不可变的。
原始数据类型是通过它的值进行比较的。让我们比较不同的数据值。请参见下面的示例:

let numOne = 3
let numTwo = 3

console.log(numOne == numTwo)      // true

let js = 'JavaScript'
let py = 'Python'

console.log(js == py)             // false 

let lightOn = true
let lightOff = false

console.log(lightOn == lightOff) // false

非原始数据类型

非原始数据类型是可修改或可变的。我们可以在创建非原始数据类型后修改其值。
让我们通过创建一个数组来看看。数组是方括号中的数据值列表。数组可以包含相同或不同的数据类型。数组值通过它们的索引来引用。在 JavaScript 中,数组索引从零开始。即数组的第一个元素在索引零处,第二个元素在索引一处,第三个元素在索引二处,依此类推。

let nums = [1, 2, 3]
nums[0] = 10

console.log(nums)  // [10, 2, 3]

数组作为非原始数据类型是可变的。非原始数据类型不能通过值进行比较。即使两个非原始数据类型具有相同的属性和值,它们也不严格相等。

let nums = [1, 2, 3]
let numbers = [1, 2, 3]

console.log(nums == numbers)  // false

let userOne = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}

let userTwo = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}

console.log(userOne == userTwo) // false

经验法则是我们不比较非原始数据类型。不要比较数组、函数或对象。
非原始值被称为引用类型,因为它们是通过引用而不是值进行比较的。只有当两个对象引用同一个底层对象时,它们才严格相等。

let nums = [1, 2, 3]
let numbers = nums

console.log(nums == numbers)  // true

let userOne = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}

let userTwo = userOne

console.log(userOne == userTwo)  // true

如果你难以理解原始数据类型和非原始数据类型之间的区别,你并不是唯一的一个。冷静下来,继续阅读下一节,稍后再回头看看。

数字

数字是整数和小数值,可以进行所有的算术运算。

声明数字数据类型

let age = 35
const gravity = 9.81  // 我们使用 const 声明不变的值,如重力常数,单位为 m/s²
let mass = 72         // 质量,单位为千克
const PI = 3.14       // pi 是一个几何常数

// 更多示例
const boilingPoint = 100 // 水的沸点,单位为摄氏度
const bodyTemp = 37      // 平均人体温度,单位为摄氏度

console.log(age, gravity, mass, PI, boilingPoint, bodyTemp)

Math 对象

在 JavaScript 中,Math 对象提供了许多处理数字的方法。

const PI = Math.PI

console.log(PI)                            // 3.141592653589793

// 四舍五入到最接近的数
// 如果大于0.5,向上舍入,如果小于0.5,向下舍入

console.log(Math.round(PI))                // 3,舍入到最接近的数

console.log(Math.round(9.81))              // 10

console.log(Math.floor(PI))                // 3,向下舍入

console.log(Math.ceil(PI))                 // 4,向上舍入

console.log(Math.min(-5, 3, 20, 4, 5, 10)) // -5,返回最小值

console.log(Math.max(-5, 3, 20, 4, 5, 10)) // 20,返回最大值

const randNum = Math.random() // 生成 0 到 0.999999 之间的随机数
console.log(randNum)

// 让我们创建一个 0 到 10 之间的随机数

const num = Math.floor(Math.random() * 11) // 生成 0 到 10 之间的随机数
console.log(num)

// 绝对值
console.log(Math.abs(-10))      // 10

// 平方根
console.log(Math.sqrt(100))     // 10

console.log(Math.sqrt(2))       // 1.4142135623730951

// 幂
console.log(Math.pow(3, 2))     // 9

console.log(Math.E)             // 2.718

// 对数
// 返回以 E 为底的自然对数,Math.log(x)
console.log(Math.log(2))        // 0.6931471805599453
console.log(Math.log(10))       // 2.302585092994046

// 分别返回 2 和 10 的自然对数
console.log(Math.LN2)           // 0.6931471805599453
console.log(Math.LN10)          // 2.302585092994046

// 三角函数
Math.sin(0)
Math.sin(60)

Math.cos(0)
Math.cos(60)
随机数生成器

JavaScript 的 Math 对象有一个 random() 方法,可以生成 0 到 0.999999999… 之间的随机数。

let randomNum = Math.random() // 生成 0 到 0.999... 之间的随机数

生成 0 到 10 之间的随机数:

let randomNum = Math.random()         // 生成 0 到 0.999 之间的随机数
let numBtnZeroAndTen = randomNum * 11

console.log(numBtnZeroAndTen)         // 结果为:最小 0,最大 10.99

let randomNumRoundToFloor = Math.floor(numBtnZeroAndTen)
console.log(randomNumRoundToFloor)    // 结果为 0 到 10 之间

字符串

字符串是文本,放在单引号、双引号或反引号中。要声明一个字符串,我们需要一个变量名、赋值操作符和一个用单引号、双引号或反引号括起来的值。

let space = ' '           // 一个空格字符串
let firstName = 'Asabeneh'
let lastName = 'Yetayeh'
let country = 'Finland'
let city = 'Helsinki'
let language = 'JavaScript'
let job = 'teacher'
let quote = "The saying,'Seeing is Believing' is not correct in 2020."
let quotWithBackTick = `The saying,'Seeing is Believing' is not correct in 2020.`

字符串拼接

连接两个或多个字符串称为拼接。
使用在前面的字符串部分中声明的字符串:

let fullName = firstName + space + lastName; // 拼接,将使用 + 运算符连接两个字符串
console.log(fullName)

我们还可以连接包括数字在内的不同数据类型。

let age = 100;
let fullName = firstName + space + lastName + '. I am ' + age + ' years old.' ;
console.log(fullName)

长字符串和换行符

字符串值可以非常长。我们使用反斜杠字符 () 指示代码行继续:

const paragraph = "My name is Asabeneh Yetayeh. I live in Finland, Helsinki. \
I am a teacher and I love teaching. I teach HTML, CSS, JavaScript, React, Redux, \
Node.js, Python, Data Analysis, D3.js, and more. I am now enjoying learning \
React Native."
console.log(paragraph)

转义字符序列

在字符串中我们可以使用转义字符来表示特殊字符。

\n: 换行
\t: 制表符,水平制表符
\\: 反斜杠
\': 单引号(撇号)
\": 双引号
console.log('I hope everyone is enjoying the 30 Days Of JavaScript challenge.\nDo you ?') // 换行
console.log('Days\tTopics\tExercises')
console.log('Day 1\t3\t5')
console.log('Day 2\t3\t5')
console.log('Day 3\t3\t5')
console.log('Day 4\t3\t5')
console.log('This is a backslash  symbol (\\)') // To write a backslash
console.log('In every programming language it starts with \"Hello, World!\"')
console.log("In every programming language it starts with \'Hello, World!\'")

模板字符串 (Template Literals)

在 JavaScript 中,我们可以使用反引号()和插值表达式 ${}` 创建模板字符串。 让我们用模板字符串重写之前的字符串拼接示例:

let a = 2
let b = 3
console.log(`${a} is greater than ${b}: ${a > b}`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code王工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值