Javascript基础学习干货教程(3)

JavaScript数据类型详解
本文深入讲解JavaScript中的数据类型,包括基本类型(字符串、数字、布尔、空、未定义、符号)和引用类型(对象、数组、函数),并详细介绍了字符串、数组、日期等类型的属性与方法,以及类型转换和检测技巧。

JavaScript 数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(表示独一无二的值)。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

  1. NaN 的数据类型是 number
  2. 数组(Array)的数据类型是 object
  3. 日期(Date)的数据类型为 object
  4. null 的数据类型是 object
  5. 未定义变量的数据类型为 undefined
  • 通常使用字符创建字符串:var firstName = "John",也可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("John"),但一般不推荐(拖慢执行速度,并可能产生其他副作用)。可以用内置属性 .length 来计算字符串的长度,转义字符 (\) 可以用于转义撇号,换行,引号,等其他特殊字符。

下表中列举了在字符串中可以使用转义字符转义的特殊字符:
代码输出
\'单引号
\"双引号
\\反斜杠
\n换行
\r回车
\ttab(制表符)
\b退格符
\f换页符
字符串属性:

属性描述
constructor返回创建字符串属性的函数
length返回字符串的长度
prototype允许您向对象添加属性和方法
字符串方法:
方法描述
charAt()返回指定索引位置的字符
charCodeAt()返回指定索引位置字符的 Unicode 值
concat()连接两个或多个字符串,返回连接后的字符串
fromCharCode()将 Unicode 转换为字符串
indexOf()返回字符串中检索指定字符第一次出现的位置
lastIndexOf()返回字符串中检索指定字符最后一次出现的位置
localeCompare()用本地特定的顺序来比较两个字符串
match()找到一个或多个正则表达式的匹配
replace()替换与正则表达式匹配的子串
search()检索与正则表达式相匹配的值
slice()提取字符串的片断,并在新的字符串中返回被提取的部分
split()把字符串分割为子字符串数组
substr()从起始索引号提取字符串中指定数目的字符
substring()提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase()把字符串转换为小写
toString()返回字符串对象值
toUpperCase()把字符串转换为大写
trim()移除字符串首尾空白
valueOf()返回某个字符串对象的原始值

=== 为绝对相等,即数据类型与值都必须相等。
  • Undefined 表示变量不含有值
  • 变量的值设置为 null 来清空变量,null是一个空对象
  • null 和 undefined 的值相等,但类型不等
  • 当您声明新变量时,可以使用关键词 "new" 来声明其类型:

    var carname=new String;
    var x= new Number;

  • 对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔 ,在 JavaScript中,几乎所有的事物都是对象。JavaScript 对象是变量的容器,容器中的变量有值。定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的

1. 对象键值对的写法类似于:Python 中的字典和C 语言中的哈希表,通过两种方式访问对象属性——person.lastName(或person["lastName"];)

2. 对象的方法定义了一个函数,并作为对象的属性存储。访问 person 对象的 fullName方法属性时,不加括号输出函数表达式,加括号(调用)输出函数执行结果。

3. 创建对象的方法:

methodName : function() { code lines }复制代码
  • 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。语法如下:function functionname ( )
    {
    // 执行代码
    }

1. 关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数

2. 变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。函数参数只在函数内起作用,是局部变量。

3. 通过使用 return 语句,函数会停止执行,并返回指定的值

typeof 操作符来检测变量的数据类型

类型转换:

  • 函数 String()和方法toString() 将数字转换为字符串

方法描述
toExponential()把对象的值转换为指数计数法。
toFixed()把数字转换为字符串,结果的小数点后有指定位数的数字。
toPrecision()把数字格式化为指定的长度。
  • 函数String()和 方法toString() 可以将布尔值转换为字符串。
  • Date()返回字符串、函数String() 和方法toString() 可以将日期对象转换为字符串方法描述(返回的都是字符串)getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear()从 Date 对象以四位数字返回年份。getHours()返回 Date 对象的小时 (0 ~ 23)。getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。getMinutes()返回 Date 对象的分钟 (0 ~ 59)。getMonth()从 Date 对象返回月份 (0 ~ 11)。getSeconds()返回 Date 对象的秒数 (0 ~ 59)。getTime()返回 1970 年 1 月 1 日至今的毫秒数。
  • 函数Number() 可以将字符串转换为数字。数字(如 "3.14") 转换为数字 (如 3.14).空字符串转换为 0。其他的字符串会转换为 NaN (不是个数字)。
    方法描述
    parseFloat()解析一个字符串,并返回一个浮点数。
    parseInt()解析一个字符串,并返回一个整数。

  • Operator + 可用于将变量转换为数字,如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字)。
  • 函数Number() 可将布尔值转换为数字
  • 函数Number() 和日期方法 getTime()可将日期转换为数字。

自动转换类型:当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法.

下表展示了使用不同的数值转换为数字(Number), 字符串(String), 布尔值(Boolean):

原始值转换为数字转换为字符串转换为布尔值
false0"false"false
true1"true"true
00"0"false
11"1"true
"0"0"0"true
"000"0"000"true
"1"1"1"true
NaNNaN"NaN"false
InfinityInfinity"Infinity"true
-Infinity-Infinity"-Infinity"true
""0""false
"20"20"20"true
"Runoob"NaN"Runoob"true
[ ]0""true
[20]20"20"true
[10,20]NaN"10,20"true
["Runoob"]NaN"Runoob"true
["Runoob","Google"]NaN"Runoob,Google"true
function(){}NaN"function(){}"true
{ }NaN"[object Object]"true
null0"null"false
undefinedNaN"undefined"false


转载于:https://juejin.im/post/5cda675cf265da038364e69a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值