[JavaScript]基础浅析(二)

本文深入探讨JavaScript中的关键概念,包括作用域、变量类型、对象与构造方法、类型转换及正则表达式的应用。通过具体示例讲解了JS中变量的作用域规则、数字与字符串的特性、对象的创建与使用、构造方法的定义与实例化,以及正则表达式的创建与匹配技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)作用域

在js中只有函数可以限定变量的作用域

if(false) {
				var num = 10;
			}
			alert(num); // undefined

(二)类型补充

1.js中数字是浮点类型,而且是不精确的类型

0.3000000004
0.399999998 -> 0.4

2.MongoDB(NoSQL)使用的是javascript shell

一个是模糊数字
一个数字表示上限
一个数字表示下限

3.字符串

var str = ‘字符串’;

在js中双引号和单引号都表示字符串:
<input type="button" onclick="alert("Hello World")"/>
<input type="button" onclick="alert('Hello World')"/>
json案例
		var str = "{k1:123,k2:456}";
		var str = "{k1:'张三',k2:'李四'}";
		new Function("return " + str)();
数组
		var arr1 = []; // 字面值,直接量
		var arr2 = new Array();

(三)对象

js是面向对象的语言
js中对象是什么:就是键值对

		var foo = function() {};

键值对,值可以是数字、字符串或布尔类型的数据,好比字段

值也可以是函数,好比方法,键就是变量名或函数名

对象的字面值(JSON)
	var o = {}; // Object对象
	var o = {
		name:"小宅",
		sex:"女",
		age:19,
		sayHello:function() {
			alert("你好")
		}
	};
	
关联数组
		o.name
		o.sayHello()
		在js中支持将对象当作数组使用
		o["name"]
		o["sayHello"]()
	
this
		->C#中,this表示当前对象(实例)
		-> js中也是一样

(四)构造方法与对象

1.什么是构造方法

就是普通方法
调用的时候使用new就可以将其作为构造方法来使用了
js没有类,直接使用构造方法创建对象

2.实现步骤

创建一个函数
new这个函数
添加成员
在构造方法中使用this.成员进行添加

3.实例

var o1 = {};
var o2 = new Object(); // Object的构造方法
// js中所有的对象类型"来自于"object
		
// 判断变量是否是构造方法创建出来
boolean 变量 instanceof 构造方法
alert({} instanceof Object);
	

4、 js支持动态成员
-> 如果一个对象没有定义Memeber的属性,但是现在希望她有
只需要用"对象.Member=值",那么就可以给这个对象创建该成员了

(五)类型的转换与包装对象

1.基本类型的转换

number、boolean、string

①数字->字符串
-> String(数字)
-> 数字+""
-> 数字.toString()

②字符串转数字
-> 字符串-0
-> Number(字符串)
-> parseInt() parseFloat()

③转boolean
if(!!val) {
}

2.包装类型

基本类型:number、string、boolean
包装类型:Number、String、Boolean
基本类型不是对象,那么就不具备方法,只是一个简单的数据
在执行诸如"num.toString()"的时候
编译器会自动的根据num生成一个Number类型的对象,并调用toString方法
将结果返回,然后释放Number对象,等待垃圾回收

3、 常用对象

字符串
数组
时间
正则表达式
异常

(六) 正则表达式

基本元字符:	
			.
			[]
			|
			()
限定元字符:
			+
			*
			?
			{n}
			{n,}
			{n,m}
首尾元字符
			^
			$
简写形式
			\d	\D
			\w	\W
			\s	\S

在javascript中如何创建一个正则表达式

字面值:var regex = /\d+/;
构造函数:var regex = new RegExp("\\d+");

匹配
bool Regex.IsMatch(字符串, 正则);
boolen 正则表达式对象.test(字符串);

提取
提取使用方法
像数组的对象 正则表达式对象.exec(字符串);
这个对象的[0]是匹配到的结果
这个[1][2]...是各个组
在正则后面加上一个g,表示全局模式
循环提取使用的方法与刚才是一样的,不同的是需要循环调用exec方法
每次方法匹配一个,循环匹配结束后返回null,然后又从新的一轮开始
替换string <string>.replace(正则表达式或字符串, 替换为的字符串);

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值