10个实用js基础教程

发布时间:2022-07-20 17:17:02 作者:keshui 阅读量:6975

每一门语言都有一些奇技淫巧,JS也不例外,一直想总结js基础教程这篇文章,我包括一些新手,都会有这么一个疑问,每次面对一张空白的页面,不知从何下手,没有思路,高手有的是设计模式,但是在这里讲一些设计模式,我可能不够格,这些书籍都有可以自己去翻阅,我能给的就是,总结我写代码的时候,会优化的一些技巧。

实用篇

1.立即执行

我为什么把立即执行放在第一个,因为一般做业务的时候都会有一个入口函数,比如一下这种格式

function init(){
    //...
}
init()

我一开始也跟上面这样写,但是后来看了《你所不知道的javaScript》,我是这么写的

(function init(){
    //...
})()

立即执行的好处:
作用域隔离,因为init这个函数名是没有必要在全局作用域中展示的

2.常量解耦

这个技巧我在业务中也是经常使用的,没学会之前是这么写的

function(){
    console.log(12345678901)
}

但是学会之后,是这样的

const TEL = 12345678901
function(){
    console.log(TEL)
}

可能这里有人会问,你这不是多此一举,而且还添加了一个全局常量,但是事实是这样的,好处如下:

  • 当多处引用这个常量的时候,当你修改的时候,只要修改一处代码即可
  • 这样写出来的代码更具语义话,举个例子,有些请求回调中ERROR常量一般为1,摆在那别人很难看懂

3.递归的解耦

这个方法在红宝书中有写到,我不知道常不常用,如有错误,请纠正我,因为我递归一直在用,面试写算法题也在用,没学会之前的写法

function a(){
    //...
    a();
}

学会之后,我的递归一般是这么写的

function a(){
    //...
    argument.callee();
}

解耦的好处:
修改函数名即可,不影响里面的代码

4.整数的转换之加法篇

你可能以前看到过parseInt和parseFloat这两个方法来转换成number类型的整数型和浮点型,其实,一开始我也是用这么笨的方法的,为什么说笨呢,举个例子

let str = '123'
console.log(typeof parseInt(str));    //number

接下来是加号操作符

let str = '123'
console.log(typeof +str);    //number

好处就不多说了吧,你打字打得累死,不如加号来的快,而且加号实现方式还优雅

5.短路操作

没学会这个方法之前我的代码是这样的:

if(!foo){
   foo = bar
}

但是我学会短路操作之后的是这样的:

foo = foo || bar

好处:

  1. 代码量减少
  2. 书写优雅

缺点:
代码可读性降低

短路原理:
在js中&&和||这两个操作符有一个特性,比如&&前后有两个表达式,前者为false,后者不会执行,||会反过来

6.条件表达式

条件表达式或许在每门语言中都会用到,你没学会之前你会这么写

if(a === true){
   b = c;
}else{
    b = d;
}

但是你学会之后,你会这么写

let b = a ? c : d

好处:
1.减少代码量
2.代码优雅

缺点:
代码可读性降低

7.调试之alert

我没有实习之前不喜欢用alert的,现在也不怎么用,都是console.log,这样就可以在浏览器的控制台中看到页面数据的输出,但是h5不一样,h5有时候pc端没什么问题,但是手机端就是各种bug,想调试一个数据很麻烦,但是我们有个宝贝,alert这个东西在手机端调试比console.log棒的地方就是我们能看见我们的数据,他会以一个弹框的形式显示给我们

8.优雅的向下取整

向下取整有很多种方式,做常用的,是调用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的位运算,这边的 | 不是逻辑或,是按或运算

  • 注意点:
    • Math.floor(NaN)返回的是NaN,但是或零返回的是0;
    • Math.floor(Infinity)返回的是Infinity,但是或零返回的是0;

9.单声明的形式

在编程中,最好养成一个习惯,一个函数的参数,声明在函数的顶部,然后用这个声明操作符来完成,例如:

let a = 0,
     b = 0,
     c = 0,
     d = 0;
  • 这样的好处有:
    • 变量名不散乱,比较容易寻找
    • 少代码量
    • 防止你声明变量的时候出错

10.绑定this

这个怎么解释呢?其实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 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...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3