JavaScript 包含以下几种基本的数据类型:
// 将两部分字符串拼接起来,加上标点和空格
var strPart1 = "Hello";
var strPart2 = "World";
var str = strPart1 + ", " + strPart2 + "!";
alert("str = " + str); // 输出:str = Hello, World!
var str = "Hello, World!"; // 定义字符串变量
var strLength = str.length; // 获取字符串长度
alert("str.length = " + strLength); // 输出:str.length = 13
var strPart1 = "Hello";
var strPart2 = "World";
// 字符串拼接示例
var greeting = strPart1 + ", " + strPart2 + "!"; // 再次拼接两个字符串
alert("greeting = " + greeting); // 输出:greeting = Hello, World!
var str = "Hello, World!";
// 转换为大写
var upperCaseStr = str.toUpperCase(); // 将字符串转换为大写
alert("str.toUpperCase() = " + upperCaseStr); // 输出:str.toUpperCase() = HELLO, WORLD!
var str = "Hello, World!";
// 转换为小写
var lowerCaseStr = str.toLowerCase(); // 将字符串转换为小写
alert("str.toLowerCase() = " + lowerCaseStr); // 输出:str.toLowerCase() = hello, world!
var str = "Hello, World!";
// indexOf() 获取指定字符串在当前字符串中第一次出现的索引
var indexOfHello = str.indexOf("Hello"); // 获取"Hello"在字符串中的索引
alert("str.indexOf('Hello') = " + indexOfHello); // 输出:str.indexOf('Hello') = 0
var str = "Hello, World!";
// lastIndexOf() 获取指定字符串在当前字符串中最后一次出现的索引
var lastIndexOfWorld = str.lastIndexOf("World"); // 获取"World"在字符串中的最后一个索引
alert("str.lastIndexOf('World') = " + lastIndexOfWorld); // 输出:str.lastIndexOf('World') = 7
var str = "Hello, World!";
// replace() 替换指定字符串
var replacedStr = str.replace("World", "JavaScript"); // 将字符串中的"World"替换为"JavaScript"
alert("str.replace('World', 'JavaScript') = " + replacedStr); // 输出:str.replace('World', 'JavaScript') = Hello, JavaScript!
var str = "Hello, World!";
// substr() 截取子字符串
var substrExample = str.substr(7, 5); // 从索引7开始,截取5个字符
alert("str.substr(7, 5) = " + substrExample); // 输出:str.substr(7, 5) = World
var str = "Hello, World!";
// substring() 截取子字符串
var substringExample = str.substring(7, 12); // 从索引7开始,到索引12结束(不包括12)
alert("str.substring(7, 12) = " + substringExample); // 输出:str.substring(7, 12) = World
var str = "Hello, World!";
// split() 拆分字符串
var splitStr = str.split(", "); // 按", "分隔字符串,结果是一个数组
alert("str.split(', ') = " + splitStr); // 输出:str.split(', ') = Hello,World!
// 数字示例
var num = 42;
alert("num:" + num); // 输出数字
// 浮点数示例
var floatNum = 3.14;
alert("floatNum:" + floatNum); // 输出浮点数
// NaN (Not a Number) 示例
var invalidNum = "abc" / 4;
alert("invalidNum:" + invalidNum); // 输出 NaN
// Infinity 示例
var infinityNum = 10 / 0;
alert("infinityNum:" + infinityNum); // 输出 Infinity
// isNaN() 函数:判断是否不是一个数字
var result = isNaN("Hello");
alert("isNaN('Hello'):" + result); // true
// parseInt() 函数:将字符串转换为整数
var intValue = parseInt("123.456");
alert("parseInt('123.456'):" + intValue); // 123
// parseFloat() 函数:将字符串转换为浮点数
var floatValue = parseFloat("123.456");
alert("parseFloat('123.456'):" + floatValue); // 123.456
// Math.ceil() 函数:向上取整
var ceilValue = Math.ceil(4.3);
alert("Math.ceil(4.3):" + ceilValue); // 5
// Math.floor() 函数:向下取整
var floorValue = Math.floor(4.7);
alert("Math.floor(4.7):" + floorValue); // 4
// Math.round() 函数:四舍五入
var roundValue = Math.round(4.5);
alert("Math.round(4.5):" + roundValue); // 5
// Math.random() 函数:生成 0 到 1 之间的随机数
var randomValue = Math.random();
alert("Math.random():" + randomValue); // 生成一个 0 到 1 之间的随机数
// 规律:“有”就转换成 true,“没有”就转换成 false
alert("Boolean(1) = " + Boolean(1)); // true
alert("Boolean(0) = " + Boolean(0)); // false
alert("Boolean('') = " + Boolean("")); // false
alert("Boolean('abc') = " + Boolean("abc")); // true
alert("Boolean(null) = " + Boolean(null)); // false
alert("Boolean(NaN) = " + Boolean(NaN)); // false
alert("Boolean(undefined) = " + Boolean(undefined)); // false
alert("Boolean(Infinity) = " + Boolean(Infinity)); // true
// 布尔示例
var isTrue = true;
var isFalse = false;
alert("isTrue = " + isTrue + ",isFalse = " + isFalse); // 输出布尔值
// 数组示例
var arr = [1, 2, 3, 4, 5];
alert("arr:" + arr); // 输出数组
// 访问数组中的元素
alert("arr[0]:" + arr[0]); // 输出第一个元素
// 获取数组的长度
alert("arr.length:" + arr.length); // 输出数组长度
/*
Object类型:
1、Object类型是所有类型的超类,自定义的任何类型,默认继承Object。
2、Object类包括哪些属性?
- prototype属性:给类动态扩展属性和函数。
- constructor属性:表示对象的构造函数。
3、Object类包括哪些函数?
- toString():返回对象的字符串表示。
- valueOf():返回对象的原始值。
- toLocaleString():返回对象的本地化字符串表示。
4、JS中定义的类默认继承Object,会继承Object类的所有属性和方法。
自定义类也有prototype属性。
5、如何定义类和创建对象?
- 语法1:function 类名(形参){}
- 语法2:类名 = function(形参){}
创建对象语法:new 构造方法名(实参);
*/
// 示例:定义一个简单的函数
function sayHello() {
alert("Hello");
}
// 调用普通函数
sayHello();
// 通过new操作符,将sayHello函数当作类来创建对象
var obj = new sayHello(); // obj是保存内存地址的引用,指向堆中的对象
// 定义一个学生类
function Student() {
alert("Student.....");
}
// 当做普通函数调用
Student();
// 当做类来创建对象
var stu = new Student();
alert(stu); // [object Object]
// 定义带参数的类User,并在构造函数中设置属性
function User(a, b, c) {
this.sno = a; // 学号
this.sname = b; // 姓名
this.sage = c; // 年龄
}
// 创建User对象并访问属性
var u1 = new User(111, "zhangsan", 30);
alert("u1.sno = " + u1.sno); // 111
alert("u1.sname = " + u1.sname); // zhangsan
alert("u1.sage = " + u1.sage); // 30
var u2 = new User(222, "jackson", 55);
alert("u2.sno = " + u2.sno); // 222
alert("u2.sname = " + u2.sname); // jackson
alert("u2.sage = " + u2.sage); // 55
// 访问对象的属性,可以使用点操作符或方括号
alert("u2['sno'] = " + u2["sno"]); // 222
alert("u2['sname'] = " + u2["sname"]); // jackson
alert("u2['sage'] = " + u2["sage"]); // 55
// 定义类的另一种语法
Emp = function(ename, sal) {
this.ename = ename; // 员工名
this.sal = sal; // 工资
};
var e1 = new Emp("SMITH", 800);
alert("e1.ename = " + e1.ename + ", e1.sal = " + e1.sal); // 输出:SMITH, 800
// 定义一个产品类,并且给类添加方法
Product = function(pno, pname, price) {
this.pno = pno; // 产品编号
this.pname = pname; // 产品名称
this.price = price; // 产品价格
// 定义方法,获取价格
this.getPrice = function() {
return this.price;
};
};
var xigua = new Product(111, "西瓜", 4.0);
var pri = xigua.getPrice();
alert("xigua.getPrice() = " + pri); // 4.0
// 通过prototype动态扩展方法
Product.prototype.getPname = function() {
return this.pname;
};
// 调用扩展的getPname()方法
var pname = xigua.getPname();
alert("xigua.getPname() = " + pname); // 西瓜
// 给String类型动态扩展方法
String.prototype.suiyi = function() {
alert("这是给String类型扩展的一个函数,叫做suiyi");
};
// 调用扩展的suiyi()方法
"abc".suiyi(); // 输出 "这是给String类型扩展的一个函数,叫做suiyi"
// 对象示例
var person = {
name: "Alice",
age: 25
};
alert("person.name = " + person.name + ",person.age = " + person.age); // 输出对象属性
// Null 示例
var emptyValue = null;
alert("emptyValue:" + emptyValue); // 输出 Null 值
// Undefined 示例
var notDefined;
alert("notDefined:" + notDefined); // 输出 undefined 值
引用类型包括 Object
、Array
、Function
等,这些类型的值存储在内存中的地址。
// 对象示例
var person = {
name: "Alice",
age: 25
};
alert("person.name:" + person.name + ",person.age:" + person.age); // 输出对象属性