当前位置: 首页 > news >正文

arguments的一些小技巧

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在我们现在的好多前段小鲜肉中,大部分jser都是没有什么静态语言基础的(比如java,c之类的),可能有些童鞋觉得这问题不大,那么我们看下面这个例子

public void foo(String str){
  System.out.println('str:'+str);
}

这个是java中一个最简单的方法,意思就是要输出一个传入的String字符串,那么调用他就必须这样

foo("hello world!")

这个参数是必传的,如果不传参数,那么就会报错,服务就跑不下去了

但是我们看javascript

function foo(str){
  console.log("str:"+str);
}

如果要调用的话,就是这样

foo('hello world')

or

foo()

这两种方式调用都不会有错,只是第二种输出的undefined

那么问题就来了,其实第二种写法在正规的项目中是不被允许的,那么我们怎么来规避呢?

在这里就可以使用arguments,

首先,了解一下arguments是什么,戳这里

为了规避上述的方法,我们就这么做

function(str){
  if(arguments.length > 0){
    console.log("str:"+str);
  }
}

看上去这其实是个可有可无的过程,但这在真正的项目生产中可以规避很多因为语法不规范的问题

还有,我们可以直接在函数用arguments来替代参数,比如这样

function(){
  if(arguments.length > 0){
    console.log("strs:"+arguments[0]);
  }
}

有了这些判断和处理,就可以在比较复杂的项目中,解决因为参数带来的不必要的麻烦,

以此记录,日后有用

转载于:https://my.oschina.net/codingBingo/blog/751666

相关文章:

  • [\u4e00-\u9fa5] //匹配中文字符
  • js Array 交集 并集 差集 去重
  • 难道生活复杂就那么好玩吗?
  • HTML中设置input等文本框为不可操作
  • 重置Mysql密码SOP
  • Centos 系统禁ping设置
  • 计算机网络--静态路由
  • 白话 Ruby 与 DSL 以及在 iOS 开发中的运用
  • python re正则表达式模块
  • WTL之VS2013环境搭建
  • c语言编写经验逐步积累4
  • Session 和 Cookie 机制
  • C语言中预处理器的相关知识:
  • java基础 - 冒泡排序,随机数算法
  • 大写中文数字-財务
  • classpath对获取配置文件的影响
  • Js基础——数据类型之Null和Undefined
  • markdown编辑器简评
  • Promise初体验
  • Python打包系统简单入门
  • spring security oauth2 password授权模式
  • 百度地图API标注+时间轴组件
  • 创建一种深思熟虑的文化
  • 关于Java中分层中遇到的一些问题
  • 记一次和乔布斯合作最难忘的经历
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 微服务入门【系列视频课程】
  • 小试R空间处理新库sf
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 用jquery写贪吃蛇
  • 由插件封装引出的一丢丢思考
  • 追踪解析 FutureTask 源码
  • 字符串匹配基础上
  • #、%和$符号在OGNL表达式中经常出现
  • #Ubuntu(修改root信息)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (黑马C++)L06 重载与继承
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET Project Open Day(2011.11.13)
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @Autowired多个相同类型bean装配问题
  • @Documented注解的作用
  • @EventListener注解使用说明
  • []指针
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh