// 生成多少个yield 就能被for of 遍历多少次
function* mytest() {
for (let i = 0; i < 5; i++) {
yield Math.random(10) * 1000
}
}
// for of 会迭代生成器里面所有的yield ,有多少个yield就会迭代多少次
for (let i of mytest()) {
console.log(i, "i")
}
//对象的迭代器实现,实现可以for of迭代,Symbol代表隐式且唯一的属性
Object.prototype[Symbol.iterator]=function* (){
for(let key of Object.keys(this)){
yield this[key]
}
}
let abcObj={
a:"sdfsdfs",
b:"sdlfjsfdjsd"
}
for(let i of abcObj){
console.log(i,"迭代对象的key")
}
let abc3 = Symbol;
console.dir(abc3, "abc3");
abc3 = 234243234; // 重新分配给 abc2 一个新的值
console.log(abc3, "abc3");
abc3=65756567
console.log(abc3,"abc3") //可以打印,说明Symbol变量可以多次重新赋值
let myOnlyKey=Symbol();
let obj2={
a:"sdlfksjdff",
[myOnlyKey]:"slkfjsldjflskjfd"
}
console.log(obj2,"obj2")
for(var i in obj2){ //不能遍历到Symbol参数的key ,说明不可枚举
console.log(i,"obj2-i")
}
let abcd=[2342,2342,435432,42,34,2,432]
let at3=abcd.at(3) //at 索引index位置的数据
console.log(at3,"at3")
let abcvdf={
a:'sdfsdf',
b:"sdlfjslfdsf",
c:"sdfksjlfdsd"
}
console.log(...abcvdf,"abcvdf") //解构子属性
// 这里的 ...args 是函数的剩余参数。它将传递给函数的所有参数收集到一个数组中。因为你传递了一个对象 abcvdf,所以 args 数组中包含一个元素,即 abcvdf 对象。
function abcde(...args){
console.log(args,"args")
}
abcde(abcvdf)
// 大小写转换
console.log("T".toLowerCase())
console.log("t".toUpperCase())
var urlStr="https://baidu.com?a=sdsfsdf&b=23432424&c=9999"
// let urlParams=new URLSearchParams(urlStr)
// console.log(urlParams,"url-params")
// let getAParams=urlParams.get('a')
// console.log(getAParams,"paramsa")
const params = new URLSearchParams();//实现js参数转urlcode编码,直接可以传到url去请求
params.append('param1', 'value1');
params.append('param2', 'value2');
console.log(params.get('param1')) //获取到参数了
const urlObject = new URL(urlStr);// 先转为url对象,通过对象或者属性search可以获取到参数的字符
console.log(urlObject,"urlObject")
const param = new URLSearchParams(urlObject.search); //参数的字符转URLSearchParams实例对象,再通过api获取参数属性
// 遍历所有参数
for (const [key, value] of param.entries()) {
console.log(`${key}: ${value}`,"获取url参数");
}
var objOne={
a:"a"
}
var objTwo={
a:"a"
}
console.log(Object.is(objOne,objTwo),"对象比较") //比较不了引用类型,不相等
console.log(Object.is(1,1),"Object.is") //可以比较基本数据类型,相当于===
console.log(Object.is(NaN,NaN),"Object.is") //可以比较基本数据类型,相当于===
标签:key,console,log,Object,js,语法,let,测试,abc3
From: https://www.cnblogs.com/jocongmin/p/18227430