云南建设厅网站资质查询,python 网站开发 前端,个人网站备案可以盈利吗,网站概念设计1.页面导入样式时#xff0c;使用link和import有什么区别#xff1f;
link属于html标签#xff0c;import是css提供的。页面加载的同时#xff0c;link同时也会加载#xff1b;import引用的css等到页面加载完再加载
2.js函数有哪几种声明方式#xff1f;
表达式和声明…1.页面导入样式时使用link和import有什么区别
link属于html标签import是css提供的。页面加载的同时link同时也会加载import引用的css等到页面加载完再加载
2.js函数有哪几种声明方式
表达式和声明式两种
函数声明式写法function test(),这种写法会导致函数提升所有通过function声明的变量都会被解释器优先编译不管声明在什么位置都可以调用它但是她本身并不会被执行。函数表达式写法:var test function(){},这种写法不会导致函数提升必须先声明后调用。
test()//报错 TypeError:test is not a function
var test function(){console.log(测试)
}区别
函数声明式变量会声明提前函数表达式变量不会声明提前函数声明中的函数名是必需的而函数表达式中的函数名是可选的函数表达式可以在定义的时候直接在表达式后面加执行而函数声明则不可以
function f00(){console.log(测试声明式)
}()//unexpected tokenvar foo function(){console.log(测试表达式)
}();//测试自执行函数即使带有函数名它里面的函数还是属于函数表达式
(function foo(){console.log(自执行函数)
})();//自执行函数3.说说对“立即执行函数”的理解
JS立即执行函数模式是一种语法可以让你的函数在定义后立即被执行这种模式本质上就是函数表达式命名的或者匿名的在创建后立即执行。
常见的两种写法
匿名函数包裹在一个括号运算符中后面跟一个小括号
(function(){//.....
})()匿名函数后面跟一个小括号包裹在一个括号运算符中
(function(){//....
}())注意
函数体后面要有小括号函数体必须是函数表达式而不能是函数声明
好处
不必为函数命名避免污染全局变量立即执行函数内部形成了一个单独的作用域可以封装一些外部无法读取的私有变量封装变量
4.call,bind,apply的区别
apply
apply接受两个参数第一个参数是this的指向第二个参数是函数接受的参数(数组形式传入)
改变this指向后原函数立即执行此方法只是临时改变this指向一次
function fn(...args){console.log(this,...args);
}
let obj {myname:张三
}
fn.call(obj,[1,2]);//this会变成传入的obj传入的参数必须是一个数组
fn(1,2);//this指向window当第一个参数为null、undefined时默认指向window在浏览器中
fn.apply(null,[1,2]);//this指向window
fn.apply(undefined,[1,2]);//this指向windowcall
call方法的第一个参数也是this的指向后面传入的是一个参数列表
跟apply一样改变this指向后原函数会立即执行且此方法只是临时改变this指向一次。
function fn(...args){console.log(this,...args);
}
let obj {myname:张三
}
fn.call(obj,1,2);//this会变成传入的obj传入的参数必须是一个数组
fn(1,2);//this指向window当第一个参数为null、undefined时默认指向window在浏览器中
fn.call(null,1,2)//this指向window
fn.call(undefined,1,2)//this指向windowbind
bind和call很相似第一个参数也是this的指向后面传入的也是一个参数列表这个参数列表可分多次传入
改变this指向之后不会立即执行而是返回一个永久改变this指向的函数。
function fn(...args){console.log(this,args);
}
let obj {myname:张三
}
const bindFn fn.bind(obj);//this也会变成传入的objbind不是立即指向需要执行一次
bindFn(1,2);//this指向obj
fn(1,2);//this指向window5.闭包是什么? 闭包的用途?
如果一个函数用到了它作用域外的函数那么就称这个变量与这个函数之间的环境为闭包。
能够读取其它函数内部变量的函数就是闭包。
用途 模仿块级作用域隔离作用域不会全局污。 封装私有变量。 储存变量。全局变量可以重复使用但是容易造成变量污染局部变量仅在局部作用域内有效不可以重复使用不会造成变量 污染
6.重排(回流)和重绘
重绘某些元素的外观被改变例如元素的填充颜色.当一个元素的外观发生改变但没有改变布局,重新把元素外观绘制出来的过程叫做重绘。重排重新生成布局重新排列元素。重排也叫回流简单的说就是重新生成布局重新排列元素。重绘不一定导致重排但重排一定会导致重绘。
7.css的选择器有哪些
id选择器类选择器标签选择器属性选择器后代选择器子代选择器兄弟选择器~伪类选择器相邻选择器伪元素选择器::before ::after