setTimeout(function () {
console.log(1);
}, 100);
new Promise(function (resolve) {
console.log(2);
resolve();
console.log(3);
}).then(function () {
console.log(4);
new Promise((resove, reject) => {
console.log(5);
setTimeout(() => {
console.log(6);
}, 10);
})
});
console.log(7);
console.log(8);
// 2379461
function Foo() {
Foo.a = function () {
console.log(1)
}
this.a = function () {
console.log(2)
}
}
Foo.prototype.a = function () {
console.log(3)
}
Foo.a = function () {
console.log(4)
}
// 首先第一个没有调用只是构建所以 直接输出直接方法 4
Foo.a(); 4
// 构建了实例对象 Foo函数内部方法开始初始化
let obj = new Foo();
// 直接输出Foo函数内部的属性方法(静态方法比原型方法优先级高)
obj.a(); 2
// 静态方法被覆盖 输出新的静态方法
Foo.a(); 1
必须存在
默认0,没有动画
animation-delay的值可以是秒(s)或者是毫秒(ms),默认值是0,没有延迟。
animation-timing-function的值是贝塞尔曲线,默认值是ease,表示动画以低速开始,然后加速,最后在结束前变慢。 最常用的值有以下几个:
(1)linear:表示动画从头到尾的速度都是相同的。
(2)ease-in:表示动画以低速开始。
(3)ease-out:表示动画以低速结束。
(4)ease-in-out:表示动画以低速开始和结束。
animation-iteration-count属性值有两种:
(1)直接写数字,自定义想要播放动画的次数。
(2)infinite:设置动画无线循环播放。
默认值为none,标示,不会在动画结束或者未开始时给元素 添加样式
常用属性值为:
(1)forwards:表示动画结束后,元素直接接使用当前样式。
(2)backwards:表示在动画延迟时间元素使用关键帧中from的属性值或者to属性值(当animation-direction为reverse或者alternate-reverse时)
默认值是normal,动画正常播放。如果动画只播放一次,则该属性无效。
常用的属性值为:
(1)reverse:表示动画反向播放。
(2)alternate:表示动画在奇数次播放时为正向播放,为偶数次播放时为反向播放。
(3)alternate-reverse: :表示动画在奇数次播放时为反向播放,为偶数次播放时为正向播放。
animation属性在书写通常合并在一起,除非需要单独设置的属性值,animation属性的简写形式为:animation:code 2s 2s linear infinite alternate forwards;
// 动画旋转 当鼠标放在box元素上,暂停动画
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
/* 动画名称 动画执行一次所需要的时间 动画循环次数:无限循环 */
animation: growLine 1s infinite;
}
.box:hover{
/* 控制动画的运行和暂停 */
/* paused是暂停 */
/* running是运行 */
animation-play-state: paused;
}
@keyframes growLine{
100%{
// 偏移360°
transform: rotate(360deg);
}
}
style>
<body>
<div class="box"> div>
body>
parseInt 会将字符串转化成整数,但它会忽略非数字部分而不给任何提示,比如:“37ABC” 会转化成 37
可以转换成整数
isNaN()
方法,返回一个布尔值;// 实现一个需求,从数组对象内找到如果是数字或字符串数字类型就放到a数组内,如果是其他类型就放在b数组内
function fn(arr) {
for (let i of arr) {
// 如果是其他类型 Number转化后会成为NaN;
if (!isNaN(Number(i.value))) {
a.push(i.value);
} else {
b.push(i.value);
}
}
}