html5笔记
程序员文章站
2022-03-02 17:15:49
datalist
nav
section
seo搜索引擎优化
选择器
document.queryselector(“.aa”)选择一个
document.querysele...
datalist
nav
section
seo搜索引擎优化
选择器
document.queryselector(“.aa”)选择一个
document.queryselectorall(“.aa”)选择多个
classlist返回的是一个对象,classname返回的是一个字符串
classlist里面的toggle()可以切换class方法,就是你原来没有我就给你加上,原来有就去掉
json.stringify();把对象转化成字符串
json.parse();把字符串转化成对象
json的兼容性问题解决方法www.json.org下载json.js引入
//作用是完成拷贝obj,返回新的对象(两种方法) var obj1 = { name: “zhangsan”, age: 20, father: { name: “zhangxx”, age: 50 } };
方法一:用原生js进行递归操作
function clone(obj) { var newobj = {}; for (var p in obj) { if (typeof(obj[p]) == “object”) { newobj[p] = clone(obj[p]); } else { newobj[p] = obj[p]; } } return newobj; }
方法二:用json
var str1 = json.stringify(obj1); var obj2 = json.parse(str1);
json只能解析json格式的代码,安全,而eval可以解析任何格式的代码,并且不安全
js异步加载(js是单线程的,是多线程的)
defer 可以保证js加载顺序,html一边渲染,js一边下载,html全部渲染完,再执行js
async 无法保证js加载顺序,html一边渲染,js一边下载,js下载完立刻执行js
用defer和async的时候是不能用document.wirte的
jsonp的原理:
通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。所以jsonp是需要服务器端的页面进行相应的配合的。
canvas的width和height都需要写成内联的样式,如果写在style里面的话会把它抻大