rand

rand 查看完整档案

深圳编辑井冈山大学  |  哲学 编辑前端开发  |  一呆 编辑 zhaobinglong.me 编辑
编辑

愿每个人的有生之年都能找到自己真正喜欢做的事情,并为之奋斗终生

个人动态

rand 赞了回答 · 10月23日

Nodejs如何获取完整URL

//需要使用的模块 http   url
 当前url   http://localhost:8888/select?aa=001&bb=002
 var http = require('http');
 var URL = require('url');
 http.createServer(function(req, res){
    var arg = url.parse(req.url).query;  
    console.log(arg.aa);//返回001
    console.log(arg.bb);//返回002
    //然后就可以根据所得到的数据处理了    
 }).listen(8888);//建立服务器并监听端口

关注 6 回答 6

rand 赞了回答 · 10月22日

解决不使用三元运算符和 if ,如何优雅地切换变量的值?

如果值均为数字 一个非常优雅的写法 可以这样

    // 初始值
    a = val1;
    
    a = (val1 + val2) - a;
   
    // 为了防止 val1 + val2溢出可以这样
    a = (val1 ^ val2) ^ a;

    // 简洁的写法 
    a ^= val1 ^ val2; // 上面已经有人给出这个答案了

效果
image.png

关注 10 回答 11

rand 赞了回答 · 10月20日

解决不使用三元运算符和 if ,如何优雅地切换变量的值?

针对题目
a = a - 1 || 2

关注 10 回答 11

rand 赞了回答 · 10月20日

解决不使用三元运算符和 if ,如何优雅地切换变量的值?

知乎上看过一些奇技淫巧:
针对2^32位以下的正整数,用与或加密再解密——

a ^= b;
b ^= a;
a ^= b;

对于整数,同样的思路,任何可逆运算都能组合一堆答案出来,但是需要注意数值溢出,比如用加减法——

a += b;
b = a - b;
a -= b;

ES6 数组的解构赋值——

[a, b] = [b, a];

这种倒是通用的,也还算优雅。


然而大多数这样的代码除了炫技之外并没什么用,不如 if...else 那么直观。

关注 10 回答 11

rand 提出了问题 · 10月20日

解决不使用三元运算符和 if ,如何优雅地切换变量的值?

RT,维护一个老项目,经常看到这种垃圾代码,有没有比三元运算更优雅的实现呢

// 比如说变量a有1和2两个值,当它初始为1则赋值2,初始为2则赋值1
let a = 1

// 垃圾1
if (a == 1) {
  a = 2
} else {
  a = 1
}

// 优雅1
a = a == 1 ? 2 : 1

关注 10 回答 11

rand 关注了问题 · 10月14日

解决vuex中如何优雅的通过getters获取异步的数据,只获取一次不要重复获取

场景

项目中多个页面和组件都要使用后端返回的地址数组,希望把数组保存在store中,任意组件或者页面需要使用地址信息,则直接this.$store.getters.address即可

伪代码实现

state: {
    address: []
},
mutations: {
    setAddress(state, data) {
        state.address = data;
    }
},
action: {
    // 异步接口获取后端地址数组
    async getArr({commit},arg){
       let arr = await (await fetch('API')).json();
       commit('setAddress',arr);
    }
},
getters: {
   // 如果数据已经存在就直接返回,如果不存在就先通过action获取
   // 全局只获取一次
   address(state){
     if (state.address.length == 0) {
        store.dispatch('getArr');
     }
     return state.address
   }
}

问题

这样写的代码会提示getters中的store没有定义,查阅官网和社区,都建议不要在getters中更改数据,如果不能在getters通过action设置数据的话,如何优雅的实现这个要求呢

参考案例https://mp.weixin.qq.com/s/4X...

关注 3 回答 1

rand 提出了问题 · 10月14日

解决vuex中如何优雅的通过getters获取异步的数据,只获取一次不要重复获取

场景

项目中多个页面和组件都要使用后端返回的地址数组,希望把数组保存在store中,任意组件或者页面需要使用地址信息,则直接this.$store.getters.address即可

伪代码实现

state: {
    address: []
},
mutations: {
    setAddress(state, data) {
        state.address = data;
    }
},
action: {
    // 异步接口获取后端地址数组
    async getArr({commit},arg){
       let arr = await (await fetch('API')).json();
       commit('setAddress',arr);
    }
},
getters: {
   // 如果数据已经存在就直接返回,如果不存在就先通过action获取
   // 全局只获取一次
   address(state){
     if (state.address.length == 0) {
        store.dispatch('getArr');
     }
     return state.address
   }
}

问题

这样写的代码会提示getters中的store没有定义,查阅官网和社区,都建议不要在getters中更改数据,如果不能在getters通过action设置数据的话,如何优雅的实现这个要求呢

参考案例https://mp.weixin.qq.com/s/4X...

关注 3 回答 1

rand 关注了用户 · 9月15日

Peter谭金杰 @jerrytanjinjie

前端架构师

微信公众号:前端巅峰

欢迎技术探讨~

个人微信:CALASFxiaotan

关注 4231

rand 赞了回答 · 7月30日

解决elementui怎么阻止事件冒泡

套个div,div上写@click.stop

关注 2 回答 2

rand 关注了专栏 · 6月24日

颜海镜

专注Web前端

关注 717

认证与成就

  • 获得 119 次点赞
  • 获得 228 枚徽章 获得 18 枚金徽章, 获得 92 枚银徽章, 获得 118 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

注册于 2015-06-19
个人主页被 1.4k 人浏览