roshanca

roshanca 查看完整档案

杭州编辑  |  填写毕业院校  |  填写所在公司/组织 roshanca.com 编辑
编辑

code for fun or code for 饭?

个人动态

roshanca 回答了问题 · 2016-03-19

解决关于ES6的 let 命令

没看出什么闭包,也没觉得跟 let 有啥关系。就普通的一个循环,把表达式储存在数组中:

[function () {console.log(0)}, function () {console.log(1)}, function () {console.log(2)} ...]

所以 a[6] 应该是表达式 function () {console.log(6)} 本身。所以结果是:

(function () {console.log(6)})(),那自然就是 6 咯。

关注 12 回答 6

roshanca 回答了问题 · 2016-01-30

解决Angular表单验证

<input type="text" class="form-control" placeholder='Name' name='name' ng-model='signup_name' ng-minlength='3' ng-maxlength='20' required validate-on-blur />
app.directive('validateOnBlur', function () {
  return {
      require: 'ngModel',
      link: function (scope, elem, attrs, ctrl) {
        var allowTypes = ['text', 'email', 'password'];
        if (allowTypes.indexOf(attrs.type) === -1) {
          return;
        }
    
        ctrl.$focused = false;
    
        elem.bind('focus', function () {
          elem.addClass('ng-focused');
          scope.$apply(function () {
            if(!ctrl.$focused){
              ctrl.$focused = true;
            }
          });
        });
    
        elem.bind('blur', function () {
          elem.removeClass('ng-focused');
          scope.$apply(function () {
            ctrl.$setViewValue(elem.val());
            ctrl.$focused = false;
          });
        });
      }
    }
})

关注 2 回答 1

roshanca 回答了问题 · 2015-11-24

解决[面试题目]如何实现multi(2)(3)(4)=24?

var add = function (m) {
  function temp (n) {
    return add(m * n);
  }

  temp.toString = function () {
    return m;
  }

  return temp;
}

http://roshanca.com/2012/java...

关注 34 回答 14

roshanca 赞了文章 · 2015-10-23

Chrome 开发者工具使用技巧

最近我花了较多的时间使用 Chrome 的开发者工具。我发现了很多之前没用过的好功能 (或还不是特别需要用到的功能,例如 blackboxing 和 asynchronous stacktraces) 。因此我想对我非常喜欢的几个功能做个总结。

小小的放大镜图标告诉你有哪些 CSS 类/选择器 位于哪个 CSS 文件,决定了某个特殊元素的样式和 CSS 的属性。例如,在任意 DOM 元素上右击选择 “审查元素”,切换到 “Computed” 子菜单,可以查找你感兴趣的 CSS 属性并且点击放大镜可以直接定位到的 CSS 类/选择器在 .css 文件中的位置。 (当你开发新的大型 web app 项目的时候非常有用):

image

想看看当前的 web app 发送了什么 XHRs 请求,选中位于 “Settings” 下的 “Log XMLHttpRequests” 复选框 然后看看再看看控制台的选项卡。在我知道这个功能之前,我通常将浏览器设置为通过一个 HTTP 拦截代理 ,例如 Burp suite ,但是如果你仅仅需要快速回顾一下,那么这个功能还是很方便的。当然,通过拦截器代理你也可以有机会在到达服务器之前修改 XHRs,这对安全测试非常有帮助。 一个轻量的替代方法是使用 “Sources :: XHR Breakpoints” 并激活 “Any XHR” 断点。

image

现在,假定你的 web app 正周期性得发出一些 XHR 请求(例如保持当前页面始终是最新)并且你需要知道定时器是在哪里设置的(例如在哪里调用了 setTimeout() 或使用了 setInterval() )。要解决这个问题,切换到 “Sources” 选项卡,选中“Async” 复选框。 这样可以让栈追踪继续执行,越过 setTimeout() 和 friends, 甚至多个级别的嵌套。它对 requestAnimationFrame() 和 addEventListener() 等也有效。这个复选框在这里:

image

要快速找到当你点击一个按钮或一个链接被点击时候执行的代码,启动 “Event listener breakpoint” 的 Mouse :: Click (开发现有大型 web app 的又一个杀手锏):

image

当你使用 “Event listener breakpoint :: Mouse :: Click” ,可能在一些第三方的库里(例如jquery)就先结束了, 你需要在 debugger 里走几次才能到达“真正的” event handler。“blackbox” 第三方脚本是避免这个问题一个很棒的方法。在 blackboxed 脚本中 debugger 不会中断, 他会继续执行直到遇到一行不在blackboxed 文件中的代码。 在 callstack 你可以选择第三方的库右击选择 “Blackbox Script” 将其放入 blackbox。

image

通过文件名称跳转到某个特殊文件,可以使用 ctrl-p :

image

通过名称转到某个方法(仅限当前打开的文件)使用 ctrl-shift-p:

image

全局文件查找 ctrl-shift-f

image

选择某个单词然后按 ctrl-d 几次,来选中更多相关的变量。对重命名变量来说非常方便:

image

对于本地开发的网站,可以用开发工具来编辑文件和保存修改到磁盘。切换到 Sources 选项卡,右击 Sources 子选项卡然后选择 “Add Folder to Workspace” 然后选择本地项目目录。然后右击本地文件选择 “Map to Network Resource…”,然后选择对应的 “network” 文件即可。

image

其它好用的技巧

  • $0 控制台上会显示你在 elemet 选项卡上选中的元素

  • 测试 Xpath 表达式 使用 $x("//p")

推荐安装的两个chrome 扩展

外文来源:http://mo.github.io/2015/10/19/chrome-devtools.html

查看原文

赞 20 收藏 137 评论 6

roshanca 回答了问题 · 2015-06-16

这种场景下该采用怎么样的git分支管理策略?

develop(未开发新功能)-> develop(已开发新功能,新功能不可用)-> develop(继续完善到可用)
                 └───> fix(补救)                                 ╲
                           └───> master(记得在~1版本打 tag 哦)      ╲ merge
           master(tag)<────────────────────────────┘               ↘
                 └───────────────────────────────────────────────> master

关注 14 回答 8

roshanca 回答了问题 · 2015-05-29

解决如何自己写复杂点的js插件

。。。

关注 4 回答 3

roshanca 回答了问题 · 2015-04-13

一道JavaScript中关于函数和对象的问题

jsfunction newclass(){
    return {
        lastname: "mama"
    }
}

关注 7 回答 4

roshanca 回答了问题 · 2015-04-13

react native的出现能否取代ios工程师?

近几年应该都不可能。有兴趣的话可以看看我翻译的这篇教程,自己用 React Native 写个应用试试: http://roshanca.com/2015/build-app-with-react-native/

关注 7 回答 7

roshanca 回答了问题 · 2015-04-05

JavaScript 的 Array 无法清空的奇怪问题

太多太大段的描述,看的好累。我来精简一下:

数字,字符串等都是值类型,而 plain object,array 等都是引用类型。

给你举个栗子你立马能明白:

jsvar a = [1,2,3];
var b = a;

b.push(4);
console.log(a); // [1,2,3,4]

var num = 123;
var _num = num;
_num = 456;

console.log(num); // 123

虽不是就题论题,但思路很重要。

关注 25 回答 13

roshanca 回答了问题 · 2015-04-05

解决html中文字换行问题

using flex rather than float.

关注 9 回答 6

认证与成就

  • 获得 48 次点赞
  • 获得 5 枚徽章 获得 0 枚金徽章, 获得 1 枚银徽章, 获得 4 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2012-11-26
个人主页被 762 人浏览