当前位置: 首页 > Web前端 > CSS

JS与CSS

时间:2023-03-30 16:27:13 CSS

-JS2CSS-JS==和===区别===称为严格运算符==称为等于运算符严格运算符比较不仅比较值还会比较数据类型是否是same比较相同类型的数据时,相等运算符与严格相等运算符完全相同。在比较不同类型的数据时,相等运算符先对数据进行转换,然后再与严格相等运算符进行比较。undefined==null//trueundefined===null//错误:判断NaN可以用Object.is()Object.is(NaN,NaN);//trueundefined和null的区别首先,undefined和null在if语句中,会自动转为false,即null==undefined的结果为true。通常,null表示“没有对象”,也就是说,那里应该没有值。一般用法如下:(1)作为函数的参数,表示函数的参数不是对象。(2)作为对象原型链的终点。Object.getPrototypeOf(Object.prototype)//null和undefined表示“缺失值”,即这里应该有一个值,但是没有被定义。一般用法:(1)当变量声明但未赋值时,等于undefined。(2)调用函数时,应该提供的参数没有提供,参数等于undefined。(3)对象没有赋值属性,该属性的值未定义。(4)当函数没有返回值时,默认返回undefined。JS的基本数据类型JS的基本数据类型有五种:String、Number、Boolean、Null、Undefined、引用数据类型Object(包括ArrayFunction)。JS中typeof和instanceof的用法区别在于typeof是用来获取一个变量类型的。一般typeof只能返回如下:Resultnumberbooleanstringfunctionobjectundefinedconsole.log(typeofi);//undefinedconsole.log(typeof1);//numberconsole.log(typeof'a');//stringconsole.log(typeoftrue);//布尔控制台。日志(类型函数(){});//functionconsole.log(typeof[1,'2',true]);//objectconsole.log(typeof{o:'hello',c:'world'});//objectconsole.log(typeofnull);//objectconsole.log(typeofnewNumber(2));//上面的object说明typeof不能用来判断数组的类型,因为无论是数组还是对象都会返回object,这时就需要instanceofinstanceof操作符来判断一个对象是否有构造函数的prototype属性在它的原型链中,即判断一个变量是否是一个对象的实例vararr=[1,2,3];警报(arrinstanceof数组);//trueps:其他判断方法如下①Array.isArrayArray.isArray([1,2,3]);//trueArray.isArray({foo:123});//falseArray.isArray('foobar');//假数组.isArray(undefined);//false②构造函数vararr=[1,2,3];控制台日志(arr.constructor===数组);//true③Object.prototype.toString.call()vararr=[1,2,3];Object.prototype.toString.call(arr)==="[objectArray]";//trueJS使用setTimeout递归实现setInterval。首先,setTimeout()和setInterval()常用于处理延时和定时任务。setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以每隔指定的毫秒数循环调用函数或表达式,直到clearInterval清除它//setTimeout实现了setInterval函数setTimeout(function(){//dosomethingsetTimeout(arguments.callee,interval);},interval)ps:为什么要用setTimeout来实现setInterval?JS中的arguments和arguments.callearguments对象是在所有(非箭头)函数中可用的局部变量。您可以使用arguments对象在函数中引用函数的参数。callee是参数对象属性之一。它可用于引用该函数的函数体内当前正在执行的函数。这在函数名称未知时很有用,例如在没有名称的函数表达式(也称为“匿名函数”)中特点将函数的实际参数转换为数组的方法如下/**_buffer.slice();//等同于_buffer.slice(0);//也等同于_buffer.slice(0,_buffer.length);**/varargs=Array.prototype.slice.call(arguments)//方法一varargs=[].slice.call(arguments,0)//方法二//方法三:varargs=[];for(vari=1;i//内部样式表//内联这是一个段落。

CSS权重计算内联样式表的权重最大为1000,ID选择器的权重为100,类选择器的权重为10,HTML标签选择器的权重为1,两者的区别CSSdisplay:none和visibility:hidden①两者都是隐藏元素,但是前者在文档布局中不占空间,后者仍然占空间②display:none隐藏并生成回流和重绘(reflowandrepainting)③前者是相关的,即父元素设置display:none子元素无所谓设置不能显示,后者的子元素设置visibility:visible后仍然可以显示CSSreflow和repaintreflow:whenrendertree的部分或全部由于size和margin的变化而发生变化,这个过程称为reflowrepaint:当颜色背景不会引起页面布局变化,而只是重新渲染的过程称为repaintingps:显示过程的页面分为以下几个阶段1.生成DOM树(包括display:none节点)2.在DOM树的基础上,根据节点的集合属性(margin、padding、width、height等)生成渲染树(不包括display:noneheadnodes,但包括visibility:hiddennodes)3.Onrendertree的基础继续渲染颜色,背景色等样式reflow和repaint细节,请移步待续