Day-28 特集:例外处理与FP

本篇介绍两种错误检测函式。

Error Handling例外处理

例外处理 (error handling) 是 JavaScript 的一种程序流程控制,你可以在程序执行可能抛出错误的地方使用,主动捕捉并处理错误,避免整个程序因为发生错误而停止执行。

  • Eg 若分母为0,给出infinity。
  • 若try的内容错误,catch就会作用。
try {
   // 预期可能会发生错误的程序码
} catch {
   // try 区块有抛出错误时,则执行这里的程序码
} finally {
   // 不论成败都要做
   // 关闭资源
}

预期console.log (err)会印出错误讯息。

Functional Programming (FP)

函式语言程序设计(Functional Programming, FP)是一种程序撰写风格,我们同样能用於条件检测。

设定检测条件如下

  • 密码至少要 8 个字
  • 密码里至少要有 1 个数字以及 1 个大写英文字母
  • 密码里不能有 “password” 字样
    • 用正规表达式的话:
      • 第一行也能写成 => /.{8,}/.test(pw)
      • 第二行也能写成 => /password/.test(pw)
      • 第三行也能写成 => /[A-Z]/.test(pw)
      • 第四行也能写成 => /\d/.test(pw)
const moreThanChars = (pw, n) => pw.lenth >= n //pw大於等於引数n
const containPassword = (pw) => pw.include("password") //pw内包括password
const containUppercase = (pw) => pw.toLowerCase() != pw //若pw转为小写後与原pw不同,代表有大写
const containNumber = (pw) => pw.split('').some( (c) => !isNaN(c)) //分拆文字pw,检查各字元c有无数字

const isValidPassword = (pasword) =>{
    password = password.trim() //过滤空白

    return moreThanChars (password, 8) //把值带入
    && containNumber(password) //把值带入
    && containUppercase(password) //把值带入
    && !containPassword(password) //把值带入
}
    
console.log(isValidPassword("12345"));           // false
console.log(isValidPassword("123passwordxyz"));  // false
console.log(isValidPassword("helloworld"));      // false
console.log(isValidPassword("Helloworld"));      // false
console.log(isValidPassword("helloWorld2"));     // true

<<:  D36-铁人赛完赛心得

>>:  Day-29 特集:解构 destructing

My experience with AWSome Day (Certification)

October 29, 2020 I’ve practiced the principle of M...

【Day 16】jQuery事件

jQuery事件 说明:是为响应 HTML 页面中的事件而订制的。 何谓事件(Events)? 网页...

为了转生而点技能-JavaScript,day14(this下篇: Call、apply呼叫及bind

Call呼叫:呼叫函式的方法,并且能指定 this 值。 用法:函式名.call(指定的this变数...

[Day 25] 实作 Redis Plugin 整合 Redis Coroutine Client

目前 Redis 几乎已成为後端微服务架构的必备基础设施,但是 Ktor 官方连 ORM 都没有整合...

[Day-3] R语言 - 分群分类 傻傻分不清楚~ (clustering vs classification)

您的订阅是我制作影片的动力 订阅点这里~ 若内容有误,还请留言指正,谢谢您的指教 ...