JavaScript---学习二:js数据类型

本文详细介绍了JavaScript中的基本数据类型,包括数值、字符串、布尔、null和undefined,强调了它们的特点和使用注意事项。同时,深入探讨了Object类型,包括创建对象、访问属性和方法,以及Object的基本属性和方法。最后,提到了typeof操作符在检测数据类型中的作用及其可能出现的特殊情况。
摘要由CSDN通过智能技术生成


一、 js基本数据类型

JavaScript是弱类型脚本语言,声明变量时无需指定变量的数据类型。JavaScript变量的数据类型是解释时动态决定的。
但是JavaScript的值保存在内存中,也是数据类型的。
JavaScript基本数据类型有如下五个:
(1)数值类型
(2)布尔类型
(3)字符串类型
(4)Undefined类型
(5)Null类型

数值类型

与强类型语言如C、Java不同,JavaScript的数值类型不仅包括所有的整形变量,也包括所有的浮点型变量。
JavaScript语言中的数值都是以IEEE 754双精度浮点数格式保存。JavaScript中的数值形式非常丰富,完全支持用科学计数法表示。科学计数法形如5.12e2代表5.12乘以10的2次方,5.12E2也代表5.12乘以10的2次方。科学计数法中E为间隔符号,E不区分大小写。
注意:数值直接量不要以0开头。因为JavaScript支持八进制和十六进制。八进制以0开头,十六进制以0x或0X开头。当数值类型超出了其表述范围时,将出现两个特殊值:Infinity(正无穷大)和-Infinity(负无穷大。)

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
 // 显式声明变量a , b
 var a , b;
 // 给a , b使用科学记数法赋值,其值应该为500
 a = 5E2;
 b = 1.23e-3;
 // 使用警告提示框输出变量a的值
 alert(a + "\n" + b);
</script>
</body>

</html>

字符串类型

JavaScript的字符串必须用引号括起来,此处的引号既可以是单引号,也可以是双引号。

var a="12345678912aaa";
var a='12345678912aaa';

注意:JavaScriptJava中的字符串主要有两点区别:
(1)JavaScript中的字符串可以用单引号括起来;
(2)JavaScript中比较两个字符串的字符序列是否相等使用==即可,无需使用equals()方法。
JavaScript以String内建类表示字符串,String类里包含了一系列方法操作字符串,String类有如下基本方法和属性操作字符串:(1)charCodeAt():返回字符串中特定索引处的字符所对应的Unicode值
(2)Legth():返回字符串的长度
(3)toUpperCase():将stringObj中的小写字母全部转成大写字母(4)toLowerCase():将stringObj中的大写字母全部转成小写字母(5)fromCharCode():直接通过String类调用方法,将一系列Unicode值转换成字符串
(6)indexOf():返回字符串第一次出现的位置
(7)lastIndexOf():返回字符串最后一次出现的位置
(8)subString():截取stringObj从start开始,至end为止之前的所有字符,即包括start处的字符,但不包含end处的字符
(9)slice() :截取stringObj从start开始,到end为止之前的所有字符;即包括start处的字符,但不包括end处的字符。start与end均可为负值,当为负值时,表示从最后一个字符算起的第n个字符,比如-1表示最后一个字符,-2表示倒数第二个字符。
(10)match():在字符串内检索指定的正则表达式的匹配结果,该结果与regexp是否有指定全局标志g有关
(11)split():将separtor为为分隔,将stringObj分割成一个字符串数组。separator可以是字符串或者正则表达式,若为字符串,则以separator为分割符;弱separator为正则表达式,则以符合separator指定模式的字符串作为分隔符。
(12)replace():将字符串中某个子串以特定字符串替代。

<!DOCTYPE html>
<html>
  <body>
   <script type="text/javascript">
 // 定义字符串变量a
 var a = "abc中国";
 // 获取a的长度
 var b = a.length;
 // 将系列的Unicode值转换成字符串
 var c = String.fromCharCode(97,98,99);
 // 输出a的长度,以及字符串a在索引4处的字符和
 // 对应的Unicode值,以及c字符串变量的值,alert弹出提示框“alert提示信息”
 alert(b + "---" + a.charAt(4) + "---"
  + a.charCodeAt(4) + "---" + c);
   </script>
  </body>
</html>

下面是一些常用的转义字符
在这里插入图片描述

布尔类型

布尔类型的值只有两个:true和false。布尔类型的值通常是逻辑运算的结果,或用于标志对象的某种状态。

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
 // 如果浏览器支持Cookie
 if (navigator.cookieEnabled) 
 {
  alert("浏览器允许使用Cookie");
 }
 // 如果浏览器不支持Cookie
 else
 {
  alert("浏览器禁用Cookie");
 }
</script>
</body>

</html>

null和undefined

Undefined类型的值只有一个undefined,该值用于表示某个变量不存在,或者没有为其分配值,也用于表示对象的属性不存在。null用于表示变量的值为空。Undefinednull之间的差别比较微妙,总体而言,undefined表示没有为变量设置值或属性不存在,而null表示变量是有值的,只是为其值为null。
但如果不进行精确比较,很多时候undefinednull本身就想等,即null== undefined将返回true。如果要精确区分nullundefined,应该考虑使用精确等于符(===)

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
 // 声明变量x , y
 var x , y = null;
 // 判断x的值是否为空
 if (x === undefined) 
 {
  alert('声明变量后默认值为undefined');
 }
 if (x === null)
 {
  alert('声明变量后默认值为null');
 }
 // 判断x(其值为undefined)是否与y(其值为null)相等
 if (x == y) 
 {
  alert("x(undefined)==y(null)");
 }
 // 测试一个并不存在的属性
 if(String.xyz === undefined)
 {
  alert("不存在的属性值默认为undefined");
 }
</script>
</body>

</html>

二、Object类型

JS中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,
如下所示:

var o = new Object();

这个语法与Java 中创建对象的语法相似;但在JS中,如果不给构造函数传递参数,则可以省略后面的那一对圆括号。也就是说,在像前面这个示例一样不传递参数的情况下,完全可以省略那对圆括号(但这不是推荐的做法):

var o = new Object;//有效,但不推荐省略圆括号

仅仅创建Object的实例并没有什么用处,但关键是要理解一个重要的思想:即在JS中,(就像Java 中的java.lang.Object对象一样)
Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。

属性和方法

属性是与对象相关的值。方法是能够在对象上执行的动作。举例:汽车就是现实生活中的对象。
汽车的属性:

car.name=Fiat
car.model=500
car.weight=850kg
car.color=white

汽车的方法:

car.start()
car.drive()
car.brake()

汽车的属性包括名称、型号、重量、颜色等。所有汽车都有这些属性,但是每款车的属性都不尽相同。汽车的方法可以是启动、驾驶、刹车等。所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。

创建JavaScript对象

在JavaScript中,对象是数据(变量),拥有属性和方法。当您像这样声明一个JavaScript变量时:

var txt = "Hello";

您实际上已经创建了一个JavaScript字符串对象。字符串对象拥有内建的属性length。对于上面的字符串来说,length的值是5。字符串对象同时拥有若干个内建的方法。
属性:

txt.length=5

方法:

txt.indexOf()
txt.replace()
txt.search()

在面向对象的语言中,属性和方法常被称为对象的成员。JavaScript中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等等。你也可以创建自己的对象。本例创建名为"person”的对象,并为其添加了四个属性:

<!DOCTYPE html>
<html>
<body>
 <script>
  person = new Object();
  person.firstname = "Bill";
  person.lastname = "Gates";
  person.age = 56;
  person.eyecolor = "blue";
  document.write(person.firstname + " is " + person.age + " years old.");
 </script>
</body>
</html>

访问对象属性

访问对象属性的语法是:

objectName.propertyName

本例使用 String对象的 length属性来查找字符串的长度:

var message="Hello World!";
var x=message.length;

在以上代码执行后,x的值是:

12

访问对象的方法

您可以通过下面的语法调用方法:

objectName.methodName()

下面这个例子使用 String对象的 toUpperCase()方法来把文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase();

在以上代码执行后,x的值是:

HELLO WORLD!

Object基本属性和方法

1、 constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()。
2、 hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定,例如:o.hasOwnProperty("name")
3 、isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
propertylsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句本章后面将会讨论)来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
4、 toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
5、 toString():返回对象的字符串表示。
6、 valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

三、typeof操作符

鉴于js是松散类型的,因此需要有一种手段来检测给定变量的数据类型,typeof就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下列某个字符串:
“undefined”——如果这个值未定义;
“boolean”——如果这个值是布尔值;
"string”——如果这个值是字符串;
“number”——如果这个值是数值;
"object’——如果这个值是对象或null;
“function”——如果这个值是函数。
下面是几个使用typeof操作符的例子:

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
 var message = "some string"; 
    alert(typeof message); // "string" 
    alert(typeof(message)); // "string" 
    alert(typeof 95); // "number" 
</script>
</body>

</html>

这个例子说明,typeof操作符的操作数可以是变量(message),也可以是数值字面量。注意,typeof是一个操作符而不是函数,因此例子中的圆括号尽管可以使用,但不是必需的。有些时候,typeof操作符会返回一些令人迷惑但技术上却正确的值。
比如,调用typeof null会返回"object",因为特殊值null 被认为是一个空的对象引用。
Safari 5及之前版本、Chrome 7及之前版本在对正则表达式调用typeof操作符时会返回"function",而其他浏览器在这种情况下会返回"object"。从技术角度讲,函数在js中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过 typeof操作符来区分函数和其他对象是有必要的。


### 回答1: JavaScript数据类型包括基本数据类型和引用数据类型。基本数据类型有:字符串、数字、布尔值、null和undefined;引用数据类型有:对象、数组和函数。 字符串是由一系列字符组成的,可以使用单引号或双引号表示。数字可以是整数或浮点数,也可以使用科学计数法表示。布尔值只有两个取值:true和false。null表示一个空对象,undefined表示一个未定义的值。 对象是一种复合数据类型,可以包含多个属性和方法。数组是一种特殊的对象,可以存储多个值。函数是一种可执行的代码块,可以接受参数并返回值。 了解JavaScript数据类型对于编写高质量的JavaScript代码非常重要。在编写代码时,需要根据不同的数据类型选择合适的操作和方法,以达到最佳的效果。 ### 回答2: Javascript是一种灵活多变的语言,它支持多种数据类型,这也是Javascript可以灵活应用于不同场景的原因之一。在Javascript,有六种基本的数据类型,分别是:字符串(String)、数字(Number)、布尔(Boolean)、未定义(Undefined)、空(Null)和对象(Object)。 1. 字符串(String):表示一串文本,使用单引号(' ')或双引号(" ")来表示。例如:var str = "Hello World!"。 2. 数字(Number):表示数字,整数和浮点数均支持。例如:var num = 100,var num = 3.14。 3. 布尔(Boolean):表示真假,只有两种状态,true(真)和false(假)。例如:var flag = true。 4. 未定义(Undefined):表示变量没有定义任何值,调用未定义变量的值会得到undefined。例如:var a; console.log(a); //输出undefined。 5. 空(Null):表示变量的值为空,使用null来表示。例如:var b = null。 6. 对象(Object):表示一组无序的键值对,也可称为“属性(property)”和“方法(method)”。例如:var obj = {name: "Bob", age: 18}。 以上六种基本数据类型都是独立的,但在Javascript,还存在两种复合数据类型,分别是“数组(Array)”和“函数(Function)”。 1. 数组(Array):由一组有序的值组成,每个值都有一个对应的索引。数组的表现形式是用括号([ ])将一组值括起来,每个值用逗号(,)隔开。例如:var arr = [1, 2, 3, 4, 5]。 2. 函数(Function):是带有执行语句的元素,能够在需要的时候被调用。函数有输入值(也称为参数),并且能够返回一个输出值。例如:function add(num1, num2) {return num1 + num2}。 在Javascript数据类型的转换非常灵活,可以通过多种途径实现类型的转换。例如,可以使用parseInt或parseFloat函数将字符串转换成数字,可以使用String()函数将其他类型转换成字符串。了解Javascript数据类型,可以更好地理解和运用Javascript。 ### 回答3: JavaScript是一种广泛使用的编程语言,它在web开发领域具有重要的地位。在JavaScript,有许多不同的数据类型,这些数据类型对于实现不同的功能非常重要。JavaScript数据类型包括原始类型和对象类型,而各种类型都有不同的特点和使用方式。 在JavaScript,最常见的原始数据类型包括: 1.字符串(String):字符串是一串字符组成的数据类型,可以用单引号或双引号来表示,也可以使用反引号来表示模板字符串。例如,'Hello world'、"JavaScript"、`My name is ${name}`都是字符串类型。 2.数值(Number):数值是表示数值的数据类型,可以是整数、浮点数等。例如,1、2.5、-3.14都是数值类型。 3.布尔值(Boolean):布尔值是表示真假的数据类型,只有true和false两个值。例如,true、false都是布尔值类型。 除了原始数据类型JavaScript还有对象类型,如下所示: 1.数组(Array):数组是一组有序的值,可以是任何类型的数据,用括号[]来表示。例如,[1,2,3]、["a","b","c"]都是数组类型。 2.对象(Object):对象是一组键值对组成的无序集合,用花括号{}来表示。例如,{name:"Bob", age:20}就是一个对象类型。 3.函数(Function):函数是一段可以重复调用的代码块,可以有输入和输出。例如,function add(a,b){return a+b}就是一个函数类型。 4.日期(Date):日期是表示日期和时间的类型,用内置的Date对象表示。例如,new Date()会生成当前时间的Date对象。 总之,JavaScript数据类型很多,而且它们有各自的特点和用途。在学习JavaScript时,熟悉这些数据类型的概念和使用方式非常重要,这也是JavaScript编程基础的重要组成部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值