js基础-JavaScript开发技巧总结

最新推荐文章于 2022-01-14 14:05:57 发布
原创 最新推荐文章于 2022-01-14 14:05:57 发布 · 342 阅读
· 2
· 1 ·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文章标签:

#javascript #开发技巧

javascript 专栏收录该内容
74 篇文章
订阅专栏
本文介绍了JavaScript编程中实用且高效的开发技巧,包括变量声明、数组操作、字符串处理、对象遍历等多个方面,帮助开发者提高代码质量和开发效率。

开发技巧

1、使用var声明变量

如果给一个没有声明的变量赋值,默认会作为一个全局变量(即使在函数内赋值)。要尽量避免不必要的全局变量。

2、行尾使用分号

虽然JavaScript允许省略行尾的分号,但是有时不注意的省略,会导致不必要的错误。建议在可用可不用行尾分号的地方加上分号。

3、获取指定范围内的随机数

var getRandom = function(max, min) { 
min = arguments[1] || 0;
return Math.floor(Math.random() * (max - min + 1) + min);
};

上面的函数接受一个你希望的随机最大数和一个你希望的随机最小数。

4、打乱数字数组的顺序

var sortArray = array.sort(function(){ 
return Math.random() - 0.5;
});

5、取出数组中的随机项

var ran = array[Math.floor(Math.random() * array.length)]; 

6、去除字符串的首尾空格

var s = string.trim(); 

7、类数组对象转为数组

比如:类数组对象遍历:

Array.prototype.forEach.call(argumens,function(value){

})

DOM的NodeList和HTMLCollection也是类数组对象

8、获取数组中的最大值和最小值

var max = Math.max.apply(Math, array); 
var min = Math.min.apply(Math, array);

9、清空数组

array.length = 0;

array = [];

10、保留指定小数位

var num = num.toFixed(2); 

返回字符串,保留两位小数

11、使用for-in循环来遍历对象的属性

for(var key in object) { 
// object[key]
}

不要用for-in来遍历数据

12、获取某月天数

function getMonthDay(date){ 
date = date || new Date();
if(typeof date === 'string') {
date = new Date(date);
};
date.setDate(32);
return 32 - date.getDate();
}

传入date参数,可以是字符串、日期对象实例;为空表示当月天数

13、浮点数问题

0.1 + 0.2 = 0.30000000000000004 != 0.3  

JavaScript的数字都遵循IEEE 754标准构建,在内部都是64位浮点小数表示

14、JSON序列化和反序列化

使用JSON.stringify()来将JavaScript对象序列化为有效的字符串。

使用JSON.parse()来将有效的字符串转换为JavaScript对象。

在AJAX传输数据时很有用

15、使用“===”替换“==”

相等运算符(==)在比较时会将操作数进行相应的类型转换,而全等运算符(===)不会进行类型转换。

16、避免使用with()

使用with()可以把变量加入到全局作用域中,因此,如果有其它的同名变量,一来容易混淆,二来值也会被覆盖。

17、不要使用eval()或函数构造器

eval()和函数构造器(Function consturctor)的开销较大,每次调用,JavaScript引擎都要将源代码转换为可执行的代码。

18、简化if语句

if (condition) { 
fn();
}

可替换成:

condition && fn(); 

19、给可能省略的参数赋默认值

function test(a, b){ 
a = a || '1';
}

20、给数组循环中缓存length的值

如果你确定循环中数组的长度不会变化,那么你可以这样:

var length = array.length; 
for(var i = 0; i < length; i++) {
}

可以避免在每次迭代都将会重新计算数组的大小,提高效率

21、合并数组

对于小数组,我们可以这样:

var arr1 = [1,2,3]; 
var arr2 = [4,5,6];

var arr3 = arr1.concat(arr2); // [1,2,3,4,5,6]

不过,concat()这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组。在这种情况之个,可以使用Array.prototype.push.apply(arr1,arr2)来替代创建一个新数组。

这种方法不是用来创建一个新的数组,其只是将第一个第二个数组合并在一起,同时减少内存的使用:

Array.prototype.push.apply(arr1, arr2); 

console.log(arr1); // [1,2,3,4,5,6]

22 枚举对象“自身”的属性

for…in除了枚举对象“自身”的属性外,还会枚举出继承过来的属性。

var hasOwn = Object.prototype.hasOwnProperty;

var obj = {name: 'tg', age: 24};

for(var name in obj) {
if (hasOwn.call(obj, name)) {
console.log(name + ':' + obj[name]);
}
}

// name:tg
// age:24

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
front_end_fan
关注 关注
  • 2
    点赞
  • 踩
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
专栏目录
技术分享:前端开发小技巧
关注我!带你一路 "狂飙" 到底!
08-25 737
但是 break 只能跳出当前循环, 怎么办呢, 我们就可以在 for 循环语句前面放上一个定位符。但是一旦对象中属性变得多了, 那么我们展开以后看到的结果就会误导我的代码了。发现有一个小虫子, 那么这个包子就不吃了, 我们直接 break 就好了。假如说, 我们吃到第二个包子的第二口的时候, 发现是 半条虫子。由于循环要花好久才能执行结束。因为各种各样的原因, 我们的代码一旦在浏览器运行总是各种。今天, 我们来说几个前端比较冷门, 不是很常用的小玩意。我们在吃包子的时候, 吃到第二个包子的第二口的时候。
BS开发中常用的javascript技术(整理加精)之时间验证类
Opossum的专栏
09-27 1405
1、 短时间,形如 (13:04:06) function check(text) {  var a = text.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);  if (a == null) {alert(输入的参数不是时间格式); return false;}  if (a[1]>24 || a[3]>60 || a[4]>60)  {  al
参与评论 您还未登录,请先 登录 后发表或查看评论
前端开发时的小技巧
Tiny2017的博客
05-07 229
1.console.log() ** 用法1: console.log('abc') // abc 用法2,打印全名变量: let a = 5 console.log({ a }) // {a: 5} 用法3,高级格式化: let obj = { name: '深深', age: 18, stature: '3m' } console.log('深深的个人资料: %O', obj...
前端开发小技巧一
hyupeng1006的博客
12-04 193
1、为形参y设置初始值。 function log(x, y = 'World') { console.log(x, y); } log('hello') //hello world log('hello', false) //hello false (如果不用这种方式,而是在函数内部去判断是否为空,那么如果传过来的y值为 空或者为 布尔值的false,那么就会出问题)...
前端开发中这些小技巧
树上骑个猴的博客
12-08 258
浏览器变成文本编辑器 地址栏输入: data:text/html, <html contenteditable> 利用a标签自动解析URL var a = document.createElement('a'); a.href = 'https://www.maomin.club'; console.log(a.host); // www.maomin.club 页面拥有ID的元素会创建全局变量 <!DOCTYPE html> <html> <head>
Node.js 模块系统详解-JavaScript 后端开发环境与核心 API 介绍及应用场景
最新发布
02-14
内容概要:本文全面介绍了Node.js的模块系统,涵盖了Node.js的基础概念、特点以及如何利用JavaScript实现后端开发的相关细节。内容包含了Node.js是什么及其重要特性,强调了它可以脱离浏览器运行JS代码,并提供了一...
Web开发领域的JavaScript基础教程及其实用技巧
11-18
内容概要:文档详尽介绍了 JavaScript 的基础知识与应用技巧,包括环境配置、简单程序演示、主要的数据类型(如字符串、数值、布尔、数组和对象)、常用的控制结构(条件语句、循环)、以及函数和面向对象编程的基本...
JavaScript - 脚本开发
11-08
此外,微信小程序中的JavaScript开发还需要注意如下几点: - 调用微信官方提供的组件和API,遵循微信开发规范。 - 优化代码的性能,提升用户体验。 - 注意代码的安全性,防止安全漏洞导致的问题。 - 实现良好的模块...
js-高性能JavaScript-JavaScript语言精粹修订版
07-10
### JavaScript核心知识点概览 #### 一、《高性能JavaScript》 **知识点概述:** 1. **性能优化基础知识:** ...通过这些书籍的学习,可以全面掌握JavaScript的各种特性和编程技巧,提高开发效率和代码质量。
vanilla-javascript-game:香草JavaScript游戏开发
05-22
在本项目"vanilla-javascript-game:香草JavaScript游戏开发"中,我们看到了开发者通过纯JavaScript(也称为Vanilla JS)实现的三个经典游戏:2048、俄罗斯方块和蛇。Vanilla JS指的是不依赖任何外部JavaScript库或...
前端开发小技巧(1)
weixin_44333376的博客
08-25 159
在Android端,iOS端中以及H5应用中,UI设计中底部的tabBar高度一般是49px,这个49px是经过别人检验,一般是最适合的高度。
前端开发的小技巧
Lyy1315078251的博客
11-01 352
1、在制作网站前,有必要先观察全部文件,找出其中公用部分以及私有部分,做到心中有数; 2、我建议其CSS分为三个部分,初始化(base.css)、公用(common.css)、页面私有(栏目名称.css),我建议自己有一套完整的classname命名规范,如:toper(顶部)、header(头)、content(内容)、nav(导航)、title-catalog-00(栏目标题类)、tab-ca...
前端开发小技巧
qq_43557395的博客
01-14 291
当同时声明多个变量,可简写成一行 let x; let y=20; // 简写 let x,y=20; 巧妙使用解构赋值 let a,b,c; a=1; b=2; c=3; // 简写 let [a,b,c] =[1,2,3] 巧妙使用三元运算符 let num = 20; let result; if(num >=20){ result = 'hhh' }else{ result = 'xxx' } // 简写 let result = num >=20?'hhh':'x..
前端开发几个小技巧
马优晨
10-10 1228
使用 Array.includes 来处理多重条件 // 条件语句 function test(fruit) { if (fruit == 'apple' || fruit == 'strawberry') { console.log('red'); } } 如果我们想要匹配更多的红色水果呢,比方说『樱桃』和『蔓越莓』?我们是不是得用更多的 || 来扩展这条语句? functio...
简单的谈一下前端开发中的小技巧
吃瓜群众的博客
04-15 216
查找资料 领导给你安排一个任务,你从来没有做过这个功能,咋办呢?? 菜鸟 对于前端菜鸟来说,直接撸好关键词,然后找度娘,稍微有志气一点的上Google 呵呵呵呵。。。。。。 大神们会鄙视的操作 笨鸟 稍微懂得多一点的,比如公司项目用的是vue,需要再页面中嵌套一个柱形图,他们知道上github查找咯 然后再再再稍微有经验一点的上npm网站查找咯 其次 yarn网站 cnpm,pnpm等...
前端开发中这些小技巧,你知道几个?
主要领域:前端开发
06-05 616
浏览器地址栏运行JavaScript代码 javascript:alert('hello!'); Firefox不支持; 其他浏览器必须手动输入才可执行; 浏览器地址栏运行HTML代码 data:text/html,<h1>Hello, world!</h1> 在非IE浏览器可以运行 浏览器变成文本编辑器 地址栏输入: data:text/html, <html contenteditable> 控制台输入: document.body.contentEd
前端开发通用小技巧
拥抱AI Design
12-22 432
本文主要介绍前端开发的小技巧 1、常用方法 // 页面带参数跳转 go: function(path, data = {}) { path = path + '.html?t=' + (new Date().getTime()) for (var key in data) { path += '&' + key + '=' + data[key]; } window.location.replace(path); }, // 获取URL参数 getParams: function(n.
前端开发实用的小技巧
萧萧的博客
03-22 717
大四初学前端的一些笔记。
前端开发中的一些实用小技巧
webqianduan1的博客
05-26 387
Vue篇: 1、输入框限制输入正整数 <el-input placeholder="请输入大于0的整数" v-model="input1" @input="changeInput('input1')" clearable> export default { data() { input1:1 } }, methods: { changeInput(doms) { this[doms
探索JavaScript基础 - lighthouse-js-fundamentals教程
lighthouse-js-fundamentals 是一个项目名称,通常指的是一套在线的或者本地的开源资源,用于教授和练习 JavaScript 基础知识。这个项目是由 Lighthouse Labs 创建的,Lighthouse Labs 是一家提供软件开发教育的公司...
front_end_fan

博客等级

码龄8年
238
原创
371
点赞
597
收藏
153
粉丝
关注
私信

热门文章

  • js css+html实现简单的日历 33375
  • js监听手机端的touch滑动事件 21525
  • 设置title的样式 18193
  • html5实现贪吃蛇小游戏 17234
  • javascript——touch事件介绍与实例演示 16601

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

上一篇:
js基础-常用API总结
下一篇:
jquery和vue对比

最新评论

  • js基础-富文本编辑器

    SixWeChat: 引用「index」 啥意思?

  • 原生js分页效果

    m0_51704076: 如果一页显示5条怎么改?

  • CSS特殊样式(七)CSS3下的纸张效果实现展示

    不考n2不换头像: 太好看了

  • css段落文字(中英文混杂)实现两端对齐

    清川先生: 英文单词是不允许词内换行的

  • js实现前端数据分页

    啦啦啦1326: 详情怎沫查看

最新文章

  • vue-cli webpack全局引入jquery、elment-ui
  • 学习webpack
  • 学习git和github
2018年18篇
2017年289篇

目录

展开全部

收起

相关专栏

js

专栏

16 人学习

js

JS模拟画笔效果 - JavaScript技巧

Java Web开发实战指南

专栏

0 人学习

深入探讨Java Web编程,涵盖Servlet、JSP、EJB等核心技术,结合实际案例解析,助你掌握构建高效Web应用的技巧。

39、JavaScript 客户端开发与页面重定向技巧

JavaScript - 行为

专栏

0 人学习

欢迎来到《JavaScript - 行为》专栏!这里是JavaScript爱好者的天堂。无论你是刚刚起步的新手,还是寻求进阶的资深开发者,本专栏都将为你提供丰富的学习资源和技术见解。我们将涵盖从基础语法到高级编程技巧,从异步操作到框架应用,确保你能够全面掌握这门强大而灵活的语言。

Node.js入门指南:开启JavaScript全栈开发之旅

目录

展开全部

收起

上一篇:
js基础-常用API总结
下一篇:
jquery和vue对比

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值