每一门语言都有一些奇技淫巧,JS也不例外,一直想总结js基础教程这篇文章,我包括一些新手,都会有这么一个疑问,每次面对一张空白的页面,不知从何下手,没有思路,高手有的是设计模式,但是在这里讲一些设计模式,我可能不够格,这些书籍都有可以自己去翻阅,我能给的就是,总结我写代码的时候,会优化的一些技巧。
我为什么把立即执行放在第一个,因为一般做业务的时候都会有一个入口函数,比如一下这种格式
function init(){
//...
}
init()
我一开始也跟上面这样写,但是后来看了《你所不知道的javaScript》,我是这么写的
(function init(){
//...
})()
立即执行的好处:
作用域隔离,因为init这个函数名是没有必要在全局作用域中展示的
这个技巧我在业务中也是经常使用的,没学会之前是这么写的
function(){
console.log(12345678901)
}
但是学会之后,是这样的
const TEL = 12345678901
function(){
console.log(TEL)
}
可能这里有人会问,你这不是多此一举,而且还添加了一个全局常量,但是事实是这样的,好处如下:
这个方法在红宝书中有写到,我不知道常不常用,如有错误,请纠正我,因为我递归一直在用,面试写算法题也在用,没学会之前的写法
function a(){
//...
a();
}
学会之后,我的递归一般是这么写的
function a(){
//...
argument.callee();
}
解耦的好处:
修改函数名即可,不影响里面的代码
你可能以前看到过parseInt和parseFloat这两个方法来转换成number类型的整数型和浮点型,其实,一开始我也是用这么笨的方法的,为什么说笨呢,举个例子
let str = '123'
console.log(typeof parseInt(str)); //number
接下来是加号操作符
let str = '123'
console.log(typeof +str); //number
好处就不多说了吧,你打字打得累死,不如加号来的快,而且加号实现方式还优雅
没学会这个方法之前我的代码是这样的:
if(!foo){
foo = bar
}
但是我学会短路操作之后的是这样的:
foo = foo || bar
好处:
缺点:
代码可读性降低
短路原理:
在js中&&和||这两个操作符有一个特性,比如&&前后有两个表达式,前者为false,后者不会执行,||会反过来
条件表达式或许在每门语言中都会用到,你没学会之前你会这么写
if(a === true){
b = c;
}else{
b = d;
}
但是你学会之后,你会这么写
let b = a ? c : d
好处:
1.减少代码量
2.代码优雅
缺点:
代码可读性降低
我没有实习之前不喜欢用alert的,现在也不怎么用,都是console.log,这样就可以在浏览器的控制台中看到页面数据的输出,但是h5不一样,h5有时候pc端没什么问题,但是手机端就是各种bug,想调试一个数据很麻烦,但是我们有个宝贝,alert这个东西在手机端调试比console.log棒的地方就是我们能看见我们的数据,他会以一个弹框的形式显示给我们
向下取整有很多种方式,做常用的,是调用Math的方法,如下图的例子
let num = 1.23
let num1 = Math.floor(num);
console.log(num1); //1
但是下面有一种更加优雅的方式
let num = 1.23
let num1 = num | 0;
console.log(num1) // 1
这种方式更加简洁,这种方式的原理是来源于js的位运算,这边的 | 不是逻辑或,是按或运算
在编程中,最好养成一个习惯,一个函数的参数,声明在函数的顶部,然后用这个声明操作符来完成,例如:
let a = 0,
b = 0,
c = 0,
d = 0;
这个怎么解释呢?其实es6箭头函数已经解决了,我也当一个技巧跟大家絮叨絮叨,我们在设计整个js代码怎么书写的时候,常常会把一块功能相同的代码放到一块,看看下面的例子,你就懂了
function bindEvent(){
let _this = this;
function a () {
//可以在a中使用_this;
}
function b () {
//可以在b中使用_this;
}
}
评论时间:2024-01-21 06:25:01
虚拟主机网站建设 3.了解SQL语言香港 云主机
评论时间:2023-07-22 21:53:38
10.接下来就是等待新版本发布,或者重新登搭建dns域名服务器 录家庭 云主机 或者重新登录
评论时间:2023-01-03 18:25:02
一般情况下,服务器都需云主机产品低价活动 要配置一些高性能的内存、硬盘等设备,以满足自身业务发展的需求;另外还要考虑到网络环境及稳定性,如安装防火墙、路由器或其它安全防护服务器机柜尺寸图 、路由器或其它安全防护设施等,保证网络连接的畅通与稳定
评论时间:2022-12-28 06:25:01
6.云主机制作云电脑教程 维护游戏服务器三丰云虚拟主机怎么上传文件 器
评论时间:2022-10-29 18:25:01
目前主流的服务器都属于这一类,它们具有以下特点:中国根服务器被取消 什么是虚拟主机? 目前主流的服务器都属于这一类,它们具有以下特点:1.高性能
2023-12-25 22:44:35 admin
活动发布区版规2023-05-27 22:03:52 御风而行
容器、无服务器、虚拟机:安全性差...2023-05-27 20:43:39 1356
服务器宕机的造成原因和解决方法介...2023-05-27 20:43:25 qingym
别糊涂了!服务器与工作站的五大区...2023-05-27 19:08:41 小绵羊0123
科技巨头布局云端 服务器 网络硬...2023-05-27 18:17:46 姐姐的跟屁虫
钉钉因系统访问流量激增,宕机1小...2022-07-23 00:34:02 freeatom
常见ftp命令 FTP命令使用详...2022-07-21 02:17:02 ares
双硬盘组建Raid0磁盘阵列图文...2022-07-20 06:17:02 mankeung123
用友软件客户端连接不上服务器的解...2022-07-23 00:51:02 antonfxb
WebService实例2022-07-13 05:38:02 苯小孩
开发、运维不可不看的Linux调...2022-07-20 18:51:02 nightstone
如何使用Charles抓取Web...2022-01-06 05:38:03 waiching_pang
独立服务器与共享服务器diss之...2022-01-15 05:38:02 二图
我应该选择双线双IP机房还是双线...2022-02-07 05:38:03 jasonkidd
WEB服务器配置详解2022-03-14 05:38:03 netstu86
Nginx如何限制流量2022-03-29 05:38:03 mx0101
Serv-u的配置教程2022-06-29 22:19:05 seekyu
3款常用的Linux桌面的日志工...2022-07-19 20:17:02 dengyu0429
linux vi使用及详细介绍2022-07-20 01:00:05 激动的舌头
Linux视频教程:用户管理命令...2022-07-21 20:51:02 jessica-an
创建本地FTP站点2022-02-07 05:38:03 jasonkidd
WEB服务器配置详解2022-07-20 04:51:02 wolfssss
ACL权限-默认与递归(4)2022-07-22 15:00:05 淡水珊瑚
Linux下 Samba Ser...