JavaScript小技巧:合并变量赋值、&&运算符判断巧用、前端语音播报、package.json中^,~的区别、利用 new URL 解析URL

一、合并变量赋值

  我们经常用到合并变量声明,也就是当我们声明多个同类型的变量时,可以像下面这样简写。

//
let test1;
let test2 = 1;
//
let test1, test2 = 1;
console.log(test1, test2) // undefined 1

  这里讲一个合并变量赋值的小技巧,当我们处理多个变量并将不同的值分配给不同的变量时,这种方式非常有用。

let [t1, t2, t3] = [1, 2, 3];
console.log(t1,t2,t3)
// 1 2 3

二、&& 运算符巧用

  如果仅在变量值为 true 的情况下才调用函数,则可以使用 && 运算符。

//
if (test1) {
 callMethod(); 
} 
//
test1 && callMethod();

三、前端语音播报

  语音播报:在项目中需要对ajax请求返回的消息进行语音播报,str 为返回的data(可以在浏览器控制台尝试)

复制代码
// 语音播报:百度
function  voiceAnnouncements(str){
    var  url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=" + encodeURI(str);
    var  n = new  Audio(url);
    n.src = url;
    n.play();
}
voiceAnnouncements('你好,今天吃的什么?')
复制代码

四、package.json中 ^、~ 的区别

"dependencies": {
    "vue": "^2.5.2",
    "vue-router": "^3.0.1"
},

  指定版本号:

1、指定版本。比如:"vue": "2.5.2",表示安装2.5.2的版本

2、波浪号 ~ + 指定版本。比如: "vue": "~2.5.2",表示安装2.5.x的最新版本(不低于2.5.2),但是不安装2.6.x,也就是说安装时不改变大版本号和次要版本号

3、^ + 指定版本。比如:"vue": "^2.5.2",表示安装2.5.2及以上的版本,但是不安装3.0.0,也就是说安装时不改变大版本号。

  简言之就是:什么都不加是指定版本;波浪号 ~ 是不改变次要版本,但升级小版本;^ 是不改变大版本,但升级次要版本。

五、利用 new URL 解析 URL

复制代码
const parseURL = (url = '') => {
    const res = new URL(url);
    res.queryParams = key => {
        if (key) {
           return res.searchParams.get(key)
        };
        const params = {};
        const paramGroup = res.search.replace(/^\?/,'').split('&');
        paramGroup.forEach(param => {
            const [key, val] = param.split('=');
            params[key] = val;
        });
        return params;
    };
    return res;
};
parseURL('https://www.example.com/a/b?c=1&d=2');
复制代码

  可以直接使用 new URL() 解析 url 的内容。

 

posted @   古兰精  阅读(282)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-02-24 浅析JS中的BigInt类型及其使用方法与注意事项
点击右上角即可分享
微信分享提示