javascript
1、js中的日期和时间,我是链接;
2、浏览器存储方案,链接;
https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript

js按照对象属性排序方法
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
function compare(property){
return function(a,b){
//console.log(a);
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
console.log(arr.sort(compare('age')))
js中创建数组的3中方式
2020-01-11
使用百度地址中的infowindow进行标注点信息展示时,需要加入点击事件处理,
找到一个别人的实现,记录一下:
百度的api地址:http://lbsyun.baidu.com/jsdemo.htm#d0_2
https://blog.csdn.net/qq_41588568/article/details/91552752
let this_point = this;
content = `<input type="button" id="btn1" value="取消" style="width: 100px;height:30px;margin-top: 20px;margin-left: 120px;">`;
var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象
map.openInfoWindow(infoWindow, pointAA); //开启信息窗口
if (!infoWindow.isOpen()) {
infoWindow.addEventListener("open",function(e){
document.getElementById('btn1').onclick = function() {
this_point.gotoViewDetail(mapData[i].id);
}
});
} else {
let btn = document.getElementById('btn1');
btn.onclick = function() {
console.log("infowindow debug2***");
this_point.gotoViewDetail(mapData[i].id);
};
}
在chrom地址栏中输入:
data:text/html,hello data:text/html,<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
就可以不用写html,直接使用引用的js文件
webpack配置文件包括的基本元素
![]()
const path = require('path')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
entry: "./src/index.js",
output:{
path: path.resolve(__dirname,'dist'),
filename:'main.js'
},
optimization: {
minimizer: [new UglifyJsPlugin()],
},
//加载器
module:{
rules:[
{
test:/\.css$/,
use:[
{loader:'css-loader'}
]
}
]
}
}
new Promise((resolve,reject)=>{ setTimeout(function(){resolve(123)},1000) }).then(res=>console.log(res)); setTimeout(function(){console.log(123)},1000) var p1 = ()=>new Promise((res,rej)=>setTimeout(()=>res(12345),1000)) //async+await是promise+then的语法糖 //解决回调嵌套 //需要注意awati只能拿到resolve中返回的值,程序异常返回的值时拿不到的 async function q1(){ var res = await p1(); console.log(res) } function q1(){ p1().then(res=>console.log(res)) } /* 1 then的传递性:promise().then(x=>y).then(z=>z) 这里第二个then的输入参数z就是上一个then返回值传递过来的y。 2 then传递时的变化: 如果上面y是个promise,则z是promise执行完只有的结果(resolve中的结果)!!!! 上面解释了fetch().then(res=>res.text()).then(data=>console.log(data))。这里面res.text()得到的是个promise,所以传到下一个then中的data会被'偷偷'解析成运行完的结果。 */ fetch('/').then(res=>res.text()).then(data=>console.log(data.length)) fetch('/').then(res=>console.log(res.text()))
/* dfs(深度遍历)算法 *param p 原始数组 *param pb 是否已经遍历 *param level 遍历的层次 *param res 保存遍历结果的数组 */ function dfs(p,pb,level,res){ //1、截止条件 if (level == p.length + 1) { console.log(res.join("")); return; } //2 遍历候选节点 for (var i = 0; i < p.length; i++) { var c = p[i]; //2.1筛选 if (!pb[i]){ res.push(c); pb[i] = true; dfs(p,pb,level+1,res); res.pop(); pb[i] = false; } } } var p = ['a','b','c'] var pb = [false,false,false] dfs(p,pb,1,[])
chrome console中引用外部js,如loadash.js
var script = document.createElement('script'); script.src = "https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.15/lodash.min.js"; document.getElementsByTagName('head')[0].appendChild(script);
3个点(…)作用
三个点用于传参时可以看作是Rest参数的逆运算,将一个数组转为用逗号分隔的参数数组,就是说将参数数组展开了传入函数中。
javascript栈、堆内存的区别:

js全局变量查找流程:



浙公网安备 33010602011771号