您现在的位置是:首页> 编程文章 个人博客模板

JS-数据类型

无痕小Q个人博客 2020-02-21 02:46:47主页 908人已围观

简介Javascript有7种数据类型,分别为number string boolean symbol null undefined以及object。

数值(number):整数和小数(比如1和3.14)
字符串(string):文本(比如Hello World)。
布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)
undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
null:表示空值,即此处的值为空。
对象(object):各种值组成的集合。

结下来分别具体介绍一下这7种数据类型

number(数值)

Js里的数值分别有
十进制二进制八进制十六进制

  • 数值的表示
十进制二进制八进制十六进制
10b10o1230x1BC1
1.10B10O1230X1BC1
.1
1.23e2(科学)
  • 特点

*十进制:没有前导0的数值。
*八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
*十六进制:有前缀0x0X的数值。
*二进制:有前缀0b或0B的数值。

默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。

string(字符串)

  • 字符串的表示

单引号:'你好'
双引号:"你好"
空字符串:''&""
空格字符串:' '&" "

  • 转义符

为了让浏览器理解我们需要输入到页面中的一些特殊符号是文本,而不是命令,所以要在是文本的特殊符号前加上"\"
比如

var a = '\n'  //会车(行)
var b = '\t'  //tab(制表符)
var c = '\\'  // "\" 符号
  • 多行字符串

多行字符串推荐用下面这种方式
使用字符串拼接可以增加代码的易读性

var s = '123' + '456'

在ES6里可以用反引号 " ` "开头写多行字符串,反引号为数字键1左边的键

var s = `123
456`

boolean(布尔)

boolean是一个数学家,发明了逻辑学
故事:下雨 上课 没带伞 的了肺病 死了
布尔有两个值:true(真) false(假)

  • 与运算 和 或运算

与运算
a && b的真值表

a\b

或运算
a || b的真值表

a\b

null和undefined

一般来说,null表示空对象
undefined表示空非对象

  • 区别:

1.变量没有赋值:undefined
2.有一个对象(object),现在不想赋值,给它null(推荐)
有一个非对象,不想给他赋值,给他undefined(推荐)

object(对象)

前六种类型叫基本类型(简单类型)
object叫复杂类型,由简单类型组成

  • 对象的表示

比如下面就是一个对象

{
'key' : value
'name' : 'jiujizi',
'age' : 20,
'gonder' : 'male'
}

'key':value这种格式储存值,除前六种基础类型外的类型都是变量。

值得一提的是,key最好加上单引号,这样功能是最强大的
(key如果不加单引号,就必须依照标示符的命名规则)
还有对象里还能有对象,具体操作方式以后再说

  • 对象的引用
porson = {  //对象赋值给变量porson
          'key' : value
          'name' : 'jiujizi',
          'age' : 20,
          'gonder' : 'male'
          }
porson['name']  //jiujizi
porson.name  //这个也可以,不过是特例

上面就是对象的引用方式,记住单引号不能少

  • 对象的注意点
var person = {'name':jiujizi}
delete person['name']  // 删除person中的'name'这个key
person.name  //undefined(无value),因为delete操作符将key和value都删了

delete操作符能将对象的keyvalue都删了,与单纯的赋值成undefined不同

var person = {name:'jiujizi'}
person.name = undefined
'name' in person  //  true

对象内部的值就算被赋值为undefined,用in操作符来检验,它也依然是存在于该对象中的,并没有消失

一些操作符

  • delete
var person = {'name':jiujizi}
delete person['name']  // 删除person中的'name'这个key
person.name  //undefined(无value),因为delete操作符将key和value都删了

用于删除对象对应的key值
,把key删了,value自然也就没了

  • in
var person = {name:'jiujizi'}
person.name = undefined  //  给name这个key赋值为'undefined'
'name' in person  //  true,用in操作符来检验key是否存在于对象中

用于检测一个key是否存在于一个对象中

  • for...in...
var person = {name:'jiujizi',age:20}
for(var key in person){
console.log(key)  //  打印出person对象中的所有key
}  //  但打印的顺序是不确定的

for...in...可以用来遍历对象,但输出但值顺序却是不一定的

  • typeof
typeof 1  //  'number'
typeof 'aaa'  //  'string'
typeof symbol  //  'symbol'
typeof true  //  'boolean'
typeof null  //  'object'
typeof undefined  //  'undefined'
var a = {}
typeof a  //  'object'

typeof()可以打印出数据类型
打印出来的值都用单引号(双引号)包住,表示一个名词

这里有两个BUG

typeof null   //  'object'
var fn = function(){}
typeof fn  //  'function'
  1. null的数据类型应该是null,打印出来的却是object
  2. 数据类型function并不存在,但仍然可以打印出来,看来的确是一等公民了hhh

阅读量! (908)

关于本站

昵称:无痕小Q

职业:php-go-web开发工程师

现居:北京

Email:1838638884@qq.com

    苏轼 明月未出群山高,瑞光千丈生白毫。  一杯未尽银阙涌,乱云脱坏如崩涛。  谁为天公洗眸子,应费明河千斛水。  遂令冷看世间人,照我湛然心不起。  西南火星如弹丸,角尾奕奕苍龙蟠。  今宵注眼看不见

网站公告

  • 欢迎来到我的博客

  • 1:欢迎来到我的博客


    2:博客免费api接口现已上线


    3:博客会定期更新文章


    4:欢迎大家来捧场


    其一 天街小雨润如酥,草色遥看近却无。 最是一年春好处,绝胜烟柳满皇都。 其二 莫道官忙身老大,即无年少逐春心。 凭君先到江头看,柳色如今深未深。

站点信息

山川异域,风月同天。  寄诸佛子,共结来缘。 生活是一位睿智的长者,生活是一位博学的老师,它常常春风化雨,润物无声地为我们指点迷津,给我们人生的启迪。
  • 建站时间:2019-8-30
  • 网站程序:php,laravel-swoole框架
  • 今日流量:71(10分钟统计一次)
  • 本月流量:9412
  • 浏览总量:388339
  • 统计方式:中间件,redis消息队列,定时任务
    君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。