JavaScript之数据类型

【一】常用的调试语句

  • alert:警告,在浏览器中弹出一个警告框,内容为alert里面的内容

alert("内容");
​
alert("bad");
  • prompt:对话框,第一个参数是询问内容,第二个参数是提示摊入的实例值

prompt(问题,值);
​
prompt("your age?",22)
  • console:控制台,在控制台内输出一些内容

closole.log(内容);
​
console.log("hello")

【二】数据类型

【1】JS中的数据类型

  • 简单数据类型:Number、String、undefined、Boolean、null

  • 复杂数据类型:Object

【2】数据类型检测

console.log(typeof("bad"))
# string
  • null的数据类型是object

console.log(typeof(null))
# object

【3】字面量

  • 字面量是用于表达固定值的方法,又叫常量

  • 所见即所得

  • 比如:数字、字符串、布尔值等

【4】数字字面量

  • 这里指数学意义上的数字

  • 数字字面量区分:整数、浮点数、特殊值

  • 书写时直接写字面量,不需要加任何符号

【5】特殊值

  • Infinity 无穷:无穷大Infinity ,无穷小-Infinity

  • NaN:不是一个正常的数,是数字类型,可以通过isNaN来判断

【6】字符串

  • 组成:字母,汉字,特殊符号,空白等

  • 字符串的字面量写法:是用一对单引号或者一对双引号

  • 如果字符串中含有单引号那么字面量写法就必须用双引号,反之也一样

  • 转义符号:\n换行 ,\t缩进 ,' 单引号 ," 双引号,\反斜杠

【三】变量和常量

  • js是一门拥有动态类型的语言

  • name可以指向任意类型

  • 在某些语言中,变量名只能指向其中一种,不支持做更改

var name ='knight'
var name ='hyt'

【1】变量

(0)介绍

  • 变量(variables),是计算机内存中存储数据的标识符,可以根据变量名称获取存储的值

  • 变量相当于一个容器,内部可以存储任意的数据,使用变量时,用的是内部存储的数据

  • 使用变量可以方便的获取或者修改

(1)变量声明

  • 变量声明又称创建变量

  • 在变量使用前必须先定义,如果没有定义就会出现引用错误

  • 在js中 首次定义一个变量名时需要用关键字声明

# 关键字 var
var 变量名=变量值
var n ='hyt'
​
# es6语法
let 变量名=变量值
let na="gd"
  • 注意:如果编译器版本是 5.1 则无法使用let,6.0 则向下兼容,二者都可以

(2)var和let的区别

  • var 在循环内定义也会影响到全局

  • let 在局部定义只会在局部生效

(3)变量命名规范

  • 变量名只能是 数字/字母/下划线/$

  • 变量名命名规范(js中推荐驼峰式命名法、私有成员以_开头)

  • 变量民不能用关键字作为变量名

  • 变量名不能用数字开头

(4)变量赋值

  • 定义完变量后,初始没有进行赋值,内部会有一个默认的存储值叫做 undefined

var names;
​
console.log(names)
# undefined
  • 变量赋值通过 = 赋值 等号左边是变量名 右边是变量值

  • 书写时习惯在等于号两边各加一个空格

  • 变量可以在定义时直接赋值

  • 变量可以赋值给另一个变量,只是把变量的值赋值给另一个变量

  • 变量可以多次赋值

  • 多个变量可以同时声明中间用,号分隔

var names='gdy',age=22

【2】常量

  • 在Python中没有真正意义上的常量,默认全大写就是常量

  • 在js中有真正意义上的常量

# 无法修改常量值
const i =10;
var i =11;
# VM296:1 Uncaught SyntaxError: Identifier 'i' has already been declared
  • 注意:js也是一门面向对象的编程语言,一切皆对象

【四】数字类型(number)

【1】创建

var n=52
var l=52.1314

【2】查看数据类型

typeof n
'number'
typeof l
'number'

【3】特殊情况:NaN

  • NaN:数值类型

  • 表示的意思是:不是一个数字,Not A Number

【4】类型转换

var e=parseInt("1.11")
var o=parseFloat("1")
​
console.log(e)
# 1
console.log(o)
# 1
  • parsenlnt方法

# 只要开头是数字就可以传
console.log(parseInt("121aaujh"))
# 121
console.log(parseInt("aasdads444564546"))
# NaN
  • parseFloat方法

console.log(parseFloat("11.11"))
# 只要开头有数字就可以转,如果开头不是数字则是NoN
# 11
​
console.log(parseFloat("11.11"))
# NaN 

【五】布尔类型(Boolean)

【1】引入

  • 在Python中布尔值是首字母大写的(True/False)

  • 但是在js中布尔值是全小写的(true/false)

【2】示例

var a = true
console.log(a)
# true
typeof a
# 'boolean'

【3】布尔值是false的情况

  • 空字符串

  • 0

  • null

  • undefined

  • NaN

  • 其他情况均为true

【4】类型转换

var a=Boolean(NaN)
# false
var b=Boolean(n)
# true

【六】字符类型(string)

【1】创建示例

var a='knight'
typeof a
# 'string'
​
var b="gdy"
typeof b
# 'string'
# 不支持三引号 ''' '''

【2】模版字符串

(1)书写多行字符串

var s4=`
ab
cd
ef
`
typeof s4
# 'string'

(2)格式化字符串

  • 书写${}会想起找定义过的变量值

    • 如果找不到就会报错

  • 模版字符串除了可以定义多行文本,还可以实现格式化字符串操作

var name="knight"
var age=22
var user=`my name is ${name}, my age is ${age}`
​
user
# 'my name is knight, my age is 22'

(3)拼接字符串

  • 在JS中推荐使用 + 号 做拼接

var name="knight"
var n="k"
var si = name + n
​
si
'knightk'

【3】常用方法

(1)统计字符长度

  • 空格也算一个字符

var name="  knight  "
name
name.length
# 10

(2)移除空白

var name="  knight  "
​
# 去除两端空白
name.trim()
# 'knight'
​
# 去除左边空白
name.trimLeft()
# 'knight  '
​
# 去除右边空白
name.trimRight()
# '  knight'

(3)返回索引(默认从0开始)

  • 如果当前查找的字符不存在于此字符串中则返回-1

var name="  knight  "
# 返回索引为5的字符
name.charAt(5)
# 'g'
​
# 返回字符k所在位置的索引
name.indexOf("k")
# 2

(4)切片

var name = "wudi knight ggg"
name
# 'wudi knight ggg'
​
# substring 取索引0-5的内容(去尾)
name.substring(0,5)
# 'wudi '
​
# slice 取索引0-5的内容(去尾)
name.slice(0,5)
# 'wudi '
​
# 两者的区别:slice可以用负数取值
name.substring(0,-2)
# ''
​
name.slice(0,-2)
# 'wudi knight g'

(5)字符大小写转换

var name = "Hello World Knight"
name
# 'Hello World Knight'
​
# 字符全部转小写
name.toLowerCase()
# 'hello world knight'
# 字符全部转大写
name.toUpperCase()
# 'HELLO WORLD KNIGHT'

(6)切分

var name = "knight|music|22|宫本武藏"
name
# 'knight|music|22|宫本武藏'
​
# 以指定字符切分字符串
name.split("|")
(4) ['knight', 'music', '22', '宫本武藏']
​
# 参数2的意思就是只拿前两个参数,如果参数太大,超过了目标个数,则有几个拿几个
name.split("|",2)
(2) ['knight', 'music']

(7)字符串拼接

var a = "lkjhkjiu"
​
var b = "nbhytkjiu"
a.concat(a,b)
​
# 'lkjhkjiulkjhkjiunbhytkjiu'

【4】转换成字符串方法

  • 通过+''运算、String构造函数、toString方法

console.log(6 + '');
​
console.log(String(6));
​
console.log([1,2,3].toString());

【七】null 和 undefined

【1】null

  • 表示值为空,一把是指定或者清空一个变量是使用

【2】undefined

  • 表示声明了一个变量,但是还没有做初始化操作

  • 函数没有指定返回值的时候也是返回undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值