html、css、js、ts基础

本文介绍了HTML中<a>标签的target属性用法,CSS样式属性,以及JavaScript的常用操作,如数组处理、对象操作、链接跳转、正则表达式、数组操作、Axios跨域设置和基本的TS特性。重点讲解了链接在新窗口和当前页面的打开方式,以及如何处理ReturnUrl在登录场景的应用。

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

HTML相关

a标签

<a href="index.html">此窗口打开</a>、<a href="index.html" target="_self">此窗口打开</a>
这两个是等价的,a标签默认的target属性就是_self,这表示该链接在当前页面打开(跳转)

<a href="index.html" target="_blank">新窗口打开</a>:这表示该链接在新页面打开(跳转)

CSS相关

1.标签的style属性

style属性的值是由多个对象组成的,对象之间使用“;”(英文分号)分割开来,如下所示。

style="margin-top:15px;margin-bottom:500px"

js相关

1.常用js的骚操作

1.1.基础语法

let arr = [{name:"xiaolin",age:20},{name:"zhangsan",age:22}]
for (const item of arr){
	item.firstName=item.name;
}
结果:
arr[
{name:"xiaolin",age:20,firstName:"xiaolin"},
{name:"zhangsan",age:22,firstName:"zhangsan"}
]

js声明的对象是弱类型的
例如:
let a ={};
let b=[{"name":1,"value":2}];
a = b;
console.log(a); //结果a就变成了跟b一样的数组
同理如果 a声明的是数组,而b是对象,执行 a=b,a会变成跟b一样的对象


js的for循环,有for of 循环,for in 循环
for in是ES5标准,遍历key.
for (var key in arr){
    console.log(arr[key]);
}

for of是ES6标准,遍历value.
for (var value of arr){
    console.log(value);
}

说明:可以很清楚的看到数组arr中的对象都增加了一个属性;这种操作的原理就是const关键字;如果const变量指向的是基础数据类型,那么该变量值就不可变化,如果指向的是引用数据类型,那么该引用对象的地址不可变,但是,该引用对象的值(内容或者属性)是可以改变的

1.2.jquery对象和dom对象

jquery对象和dom对象不相同,当然jquery的函数dom对象也不能使用,要想使用jquery的函数,则需要将dom对象转化成jquery对象;

//获取id为 "testId"的dom对象
var documentObject = document.getElementById('testId');
将dom对象转化为jquery对象:$(documentObject)

//直接根据id获取jquery对象
$("#testId")

1.2.对象常用操作

  myheader.headers['login-type'] = 1:假如myheader是请求头,这一行则表示给请求头加了一个自定义(login-type)的字段
  delete myheader.headers['login-type']:将myheader请求头中新加的自定义字段(login-type)删除

2.常用js库函数

2.1.数据类型转化

JSON.stringify():将js对象转换成json串
JSON.parse():将json串转化为js对象
对象和数组相互转化:https://blog.youkuaiyun.com/petertanjinjie/article/details/110102932

2.2.字符串处理

indexOf():获取指定字符在字符串中的位置
substring():从指定位置开始到指定位置结束,截取字符串
应用
这两个函数组合,可以实现从字符串中的以某个特定字符串为分界线截取字符串,类似与java的split()方法

2.3js中的Map

(1)一般都是vue项目,所以在生命map类型的变量时,可以直接这样写

data(){
	return{
		map: new Map(),
	}
}

(2)常见用法

赋值:map.set(key,value);
注意:key是字符串类型

取值:map.get(key);

判断某个key是否存在:map.has(key)
注意:存在返回true,不存在返回false

删除某个key:map.delete(key)
删除某个key也就代表,key以及key对应的value都被删除了

清空:map.clear(),也就是删除map中所有的内容

//遍历map,打印内容
map.forEach(key=>{
  console.log(“key”,key) //输出的是map中的value值
})

2.4.链接跳转

(1)在当前页面跳转

window.location.href="http://www.baidu.com"可以写成self.location.href="http://www.baidu.com"
等价于:<a href="baidu.com" target="_self">go baidu</a>

(2)新打开页面跳转

window.open("http://www.baidu.com") 
等价于:<a href="baidu.com" target="_blank">go baidu</a>

(3)跳转链接返回上一页

window.history.back(-1):应该是跳转到上一个页面。例如,从a.html进入到了b.html,在b.html中使用这个,应该会跳转到a.html中

(4)获取当前页面的url(只有域名,不包括后面的uri)

window.location.origin(window.origin)这俩暂时未发现区别。例如,我在https://mp.weixin.qq.com/s?
__biz=Mzg5Mjc2NDYwMg==&mid=2247483893&idx=1&sn=e30431100cee1f6ebdfc45787791422e&chksm=c0386920
f74fe0365c2e4c9e921125f729847009bcd925ae617862f861b5e8a2dcf5f4876a59&token=114373383&lang=zh_CN#rd
这个页面的控制台执行"window.location.origin(window.origin)"得到的结果就是"https://mp.weixin.qq.com"

执行"window.location.href"得到的结果就是"https://mp.weixin.qq.com/s?
__biz=Mzg5Mjc2NDYwMg==&mid=2247483893&idx=1&sn=e30431100cee1f6ebdfc45787791422e&chksm=c0386920
f74fe0365c2e4c9e921125f729847009bcd925ae617862f861b5e8a2dcf5f4876a59&token=114373383&lang=zh_CN#rd"

知识扩展:

self:指代当前窗口对象,是window内置对象
location.href:指的是某window对象的url的地址。例如,self.location.href(window.location.href)指的的当前页面的url(就是https://editor.youkuaiyun.com/md/?articleId=113094002,这种的)
top.location.href:为引用当前页面的父页面的url。例如,a.html引用了b.html那么在b.html中使用top.location.href就可以拿到a.html的url(可以用来调跳转或者是做其他的事情)
window.location是一个对象,而window.location.href、window.location.origin这种只是window.location对象的属性而已,有本质的区别

(5)ReturnUrl

常见于登陆的时候,链接的跳转,例如登陆系统的页面的链接为,https://www.mytest.com?ReturnUrl=https://www.test.com
当我在登陆页面,登陆成功的时候,页面就会跳转到https://www.test.com
注意:除了登陆之外的其他场景,暂未见过会用到 ReturnUrl,后续可以留意一下

3.js常用工具(正则表达式)

3.2.正则表达式基本用法

x|y:匹配单个字符x或者单个字符y
[xyz]:匹配指定(xyz)字符的任意一个
[^xyz]:匹配非(xyz)字符的任意一个
[0-9]:匹配范围;表示0到9的所有数字
[^a-z]:匹配范围;表示非小写字母
^:匹配开头;例如 :^[0-9]:表示以数字开头
$:匹配结尾;例如:[0-9]$:表示以数字结尾
*:匹配0次或多次;例如:[0-9]*:表示匹配0次或多次数字
?:匹配0次或1次;例如:[0-9]?:表示匹配0次或一次数字
+:匹配1次或多次;例如:[0-9]+:表示匹配1次或多次数字
{n}:匹配确定的n次;例如:[0-9]{5};表示匹配5次数字
{n,m}:(n<=m)至少匹配n次,最多匹配m次;例如;[0-9]{1,2}:表示最少匹配一次数字,最多匹配2次数字

3 3.js常用工具

判断是否式数字

    isNumber(val) {
      var reg = /^[0-9]+$/;
      if (!reg.test(val)) {
        return false;
      } else {
        return true;
      }
    }

判断是否是小数

	isSmallNumber(val){
      let reg=/^[0-9]+\.?[0-9]+?$/;
      if(!reg.test(val)){
        return false;
      }else {
        return true;
      }
    }

4.js数组常用操作

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 1, "Lemon", "Kiwi");
console.log(fruits )

结果:["Banana", "Orange", "Lemon","Kiwi", "Mango"];

总结:该函数的作用的是,删除指定位置 指定个数的元素;上面的哪个例子就是删除第二个位置的1个元素("Apple"),并添加元素(也可以不添加),上面的哪个例子就是添加了两个元素。
fruits.splice(2, 1):如果是这样写,就表示删除第二个位置的1个元素("Apple")

使用场景:在页面选中某一行数据,进行添加,添加的时候,往数组tableData中放了一行记录;添加完成之后,每一行后面都会有一个删除按钮,用这个可以使用数据的删除

5.Axios相关

浏览器默认跨域的请求不会携带cookie(浏览器的同源策略),如果使用Axios发送跨域请求,并且需要携带cookie,那就需要设置withCredentials属性为true(默认是false)
示例:axios.defaults.withCredentials = true
注意:主流浏览器的无痕模式(google、火狐),默认跨域都不会携带cookie,需要在浏览器中手动操作(关闭/开启)

ts相关

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值