分类目录归档:JavaScript

JS获取DOM元素CSS样式的方法

CSS 样式有两种类型:
1.行内样式,即通过元素的 style 属性定义的样式。
2.非行内样式,即通过 <style> 标签或引入外部 CSS 文件定义的样式。
针对 DOM 元素的行内样式,可以从 DOM.style 样式集合中读取对应行内样式属性,如:DOM.style.width、DOM.style.height 等。而要获取非行内样式,则需要通过 window.getComputedStyle()(W3C)方法或 DOM.currentStyle(IE)当前样式集合属性去获取。 继续阅读

发表在 JavaScript | 标签为 , , , , | JS获取DOM元素CSS样式的方法已关闭评论

JS var、let、const 关键字的区别一览

var 关键字:ES5 标准,用 var 关键字声明的变量存在声明提升,即会将变量提前到当前作用域顶部进行声明,不存在块级作用域,允许重复声明同名变量,变量声明后可被修改。
let 关键字:ES6 标准,声明的变量不存在声明提升,变量在当前块作用域及子作用域内才可访问,不允许重复声明同名变量,变量声明后可被修改。 继续阅读

发表在 JavaScript | 标签为 , , , , | JS var、let、const 关键字的区别一览已关闭评论

JS 严格模式与非严格模式的区别

在 JavaScript 脚本的开头添加

"use strict";

'use strict';

即可使用严格模式,在函数内部的开头添加则表示只在函数内使用严格模式。

为什么使用严格模式?

1.可以避免一些不合理、不严谨 JavaScript 代码逻辑(如给未定义的变量赋值会报错);
2.提高 JavaScript 代码运行的安全性(如 eval() 函数会创建独立的作用域);
3.提高 JavaScript 解释器的编译效率,提升代码运行性能;
4.为未来新版本的 JavaScript 做好铺垫。 继续阅读

发表在 JavaScript | 标签为 , , , | JS 严格模式与非严格模式的区别已关闭评论

JS DOM事件汇总

onanimationstart 事件在 CSS 动画开始播放时触发。
onanimationiteration 事件在重复 CSS 动画时触发。
onanimationend 事件在 CSS 动画完成时触发。
ontransitionend 事件在 CSS 转换完成时触发。
onbeforeprint 事件在页面即将被打印或打印对话框出现前触发。
onafterprint 事件在页面已开始打印,或打印对话框已关闭时触发。 继续阅读

发表在 JavaScript | 标签为 , , , | JS DOM事件汇总已关闭评论

JS获取页面滚动条位置的方法(含浏览器测试)

在 Javascript 中,获取页面滚动条位置的 DOM 属性有:document.body.scrollTop / document.body.scrollLeft、document.documentElement.scrollTop / document.documentElement.scrollLeft,但存在浏览器兼容性问题,以下是测试结果:
1、document.body.scrollTop / document.body.scrollLeft
① 存在文档声明(<!DOCTYPE html>)
谷歌浏览器:正常
360浏览器:正常
火狐浏览器:0
IE浏览器:0 继续阅读

发表在 JavaScript | 标签为 , , | JS获取页面滚动条位置的方法(含浏览器测试)已关闭评论

JS AJAX函数封装

AJAX,英文全称:Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML,主要用于在与服务器交换数据时无需重新加载页面。AJAX 的实现是通过创建 XMLHttpRequest 对象,向服务器发送请求,再根据服务器返回的响应决定客户端接下来的动作。 继续阅读

发表在 JavaScript | 标签为 , , | JS AJAX函数封装已关闭评论

webpack性能优化建议

webpack是一个非常出色的、流行的前端模块打包工具,但由于webpack底层的文件模块依赖分析机制,当用于开发大项目时,打包速度会不是很理想,这时候就需要进行优化。
可以通过下面的这些方法来优化webpack。 继续阅读

发表在 JavaScript, Node.js | 标签为 , | webpack性能优化建议已关闭评论

JS 空数组与0、false相等

在对空数组与 0、false 进行相等操作符比较时,结果会返回 true,但在 if 语句中判断空数组则是 true,令人感觉造成 false 等于 true 的假象。

console.log([] == 0);
// > true
console.log([] == false);
// > true
if ([]) {
  console.log('true');
} else {
  console.log('false');
}
// > true

继续阅读

发表在 JavaScript | 标签为 , , , , , | JS 空数组与0、false相等已关闭评论

JS面向对象编程与对象继承实现

一、对象的创建
1、工厂方法(函数声明):

function createUser(name) {
    const user = {
        name,
        sayName: function() {
            console.log(this.name);
        }
    }
    return user;
}
const user = createUser('Johnson');
user.sayName();
// -> Johnson

继续阅读

发表在 JavaScript | 标签为 , , , , , | JS面向对象编程与对象继承实现已关闭评论

JS 实现1到100累加

1.利用 for 循环

var sum = 0;
for (var i = 1; i <= 100; i++) {
  sum += i;
}
console.log(sum);
// > 5050

继续阅读

发表在 JavaScript | 标签为 , , | JS 实现1到100累加已关闭评论