`
天边一朵雲
  • 浏览: 36354 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

(OTHER)JavaScript初学者的10个迷你技巧

 
阅读更多

1,在一个数组的最后添加一个元素

这个技巧可以让你使用Length属性在一个数组的最后添加一个元素,因为Length属性比数组的最后一个元素的下标多1。这个方法和“push”方法是相同的。例如:

var myArray = [];  
myArray[myArray.length] = 'New Element';  

2,调整一个数组的长度

Length属性不是只读的,所以你可以设置Length属性的值。而且,你可以使用它增大或缩小数组的长度。例如:

var myArray = [1,2,3];  
myArray.length // 3  
myArray.length = 2; //Delete the last element  
myArray.length = 20 // add 18 elements to the array; the elements have the undefined value. 

3,使用“!!”把任意数据类型转换成Boolean

这个技术可以让你使用“!!”把任意数据类型(比如string, number或integer)转换成Boolean。例如:

var myString = '23255';  
typeof myString; //String     
myString = !!myString;  
typeof myString  //Boolean 

4,把Number转换成String

这个技巧可以让你在number的结尾添加一个空的string来把number转换成string,例如:

var mynumber = 234;  
typeof mynumber; //Number     
mynumber += '';  
typeof mynumber; //String 

5,了解一个函数需要多少个变量

这是一个伟大的技巧,可以让你准确地知道一个函数需要多少个变量。例如:

function add_nums(num1, num2){       
    return num1 + num2;  
}  
add_nums.length // 2 is the amount of parameters expected by the function add_nums 

6,使用“arguments”对象来了解一个函数接收到了多少个参数

这个技术可以让你使用“arguments”对象来了解一个函数接收到了多少个参数。例如:

function add_nums(){      
    return arguments.length;  
}     
add_nums(23,11,32,56,89,89,89,44,6); //this return the number 9 

当你需要检查参数个数的有效性的时候,或者当你需要创建一个不确定参数个数的函数的时候,这个技巧是很有用的。

function sum_three_nums( ){   
    if(arguments.length!=3) 
        throw new Error('received ' + arguments.length + ' parameters and should work with 3');     
}     
sum_three_nums(23,43); //Return the error message     
function sum_num(){      
    var total = 0;      
    for(var i=0;i<arguments .length;i++){          
    total+=arguments[i];      
    }      
    return total;  
}     
sum_num(2,34,45,56,56); 

7,把对象当成参数,来组织和改善函数

在现代Web开发中,对象最普遍的一个用途是把它们当成函数的参数。要记住函数参数的这个规则总是很困难的;但是,使用一个对象是十分有好处的,因为我们不必再担心参数的规则了。而且,它更有组织性,可以让用户更好的理解我们要做什么。这个方法可以让你把对象当成参数,来组织和改善函数。例如:

function insertData(name,lastName,phone,address){      
    code here;  
} 

重构以后的代码是这样的:


function insertData(parameters){        
    var name = parameters.name;      
    var lastName = parameters.lastName;      
    var phone = parameters.phone;      
    var address = parameters.address;  
} 

当你要使用默认值的时候,它也是十分有用的。例如:

function insertData(parameters){        
    var name = parameters.name;      
    var lastName = parameters.lastName;      
    var phone = parameters.phone;      
    var address = parameters.address;      
    var status = parameters.status || 'single' //If status is not defined as a property 
//in the object the variable status take single as value  } 

现在,要使用这个函数十分的简单;我们可以用两种方式来发送数据:



//Example 1  
insertData({
    name:’Mike’, 
    lastName:’Rogers’, 
    phone:’555-555-5555’,
    address:’the address’, 
    status:’married’
});        
//Example 2  
var myData = {       
    name:’Mike’,                            
    lastName:’Rogers’,                                  
    phone:’555-555-5555’,                               
    address:’the address’,                                   
    status:’married’                         
};     
insertData(myData); 

8,函数就是数据

函数就是像strings或numbers那样的数据,我们可以把它们当成函数参数来传递它们,这可以创建十分令人惊讶而又“威风凛凛”的Web应用程序。这个方法是非常有用的,几乎所有的主流框架都使用了这个方法。例如:

function byId(element, event, f){      
    Document.getElementById(element).['on'+event] = f; //f is the function that we pass as parameter  
}     
byId('myBtn','click',function(){
    alert('Hello World')
});     
Another example of functions as data:     
//Example 1  
function msg(m){      
    Alert(m);  
}     
//Example 2  
var msg = function(m){ alert(m);} 

这些函数几乎是完全相同的。唯一的区别是使用它们的方式。例如:第一个函数,在你声明它以前,你就可以使用它了;但是第二个函数只有声明以后才能使用:

//Example 1  
msg('Hello world'); //This will work     
function msg(m){      alert(m);  }     
//Example 2  
msg('Hello world'); //Does not work because JavaScript cannot find the function msg because is used before is been declared.     
var msg = function(m){ alert(m)} 

9,扩展本地对象

虽然一些JavaScript的领袖不推荐这个技术,但是它已经被一些框架使用了。它可以让你针对JavaScript API来创建一些辅助性的方法。

//We create the method prototype for our arrays  
//It only sums numeric elements     
Array.prototype.sum = function(){       
    var len = this.length;      
    total = 0;      
    for(var i=0;i<len ;i++){          
        if(typeof this[i]!= 'number') continue;           
        total += this[i];      
    }      
    return total;  
}     
var myArray = [1,2,3,'hola'];  
myArray.sum();              
Array.prototype.max = function(){       
    return Math.max.apply('',this);  
}    

10,Boolean

注意它们之间的区别,因为这会节省你调试脚本的时间。

'' == '0'          // false  
0 == ''            // true  
0 == '0'           // true  
false == 'false'   // false  
false == '0'       // true  
false == undefined // false  
false == null      // false  
null == undefined  // true  
true == 1          // true  
'' == null         // false  
false == ''        // true 

如果你在其他地方看过这些脚本,那么这些技巧可以帮助你融会贯通。这些技巧甚至还不及JavaScript所有功能的冰山一角,但是这是一个开始!请不要客气,留下你的评论,问题,额外的技巧或疑虑吧,但是请记住,这是一篇针对初学者的文章!!我希望能收到一些开发者同行的来信!Enjoy!

分享到:
评论

相关推荐

    适合初学者的常用c源码

    这些C语言代码示例非常适合初学者,它们涵盖了基础的编程概念和技巧,包括循环、条件判断、函数定义与调用以及基本的算术运算。让我们逐一解析这些代码: 1. **序列求和**:这个程序计算了1到1/n的交错序列之和,即...

    Eclipse JAVA 计算器源码 适合初学者

    本项目提供了一个简单的Java计算器源码,适用于Java初学者进行学习和分析。该计算器可以被直接复制到Eclipse IDE中运行,并通过逐步阅读和理解源码来增强对Java编程的理解。 #### 二、环境搭建与运行 1. **开发...

    【JavaScript源代码】React 小技巧教你如何摆脱hooks依赖烦恼.docx

    ### React小技巧:结合`useState`与`useRef`应对Hooks依赖烦恼 #### 场景描述 在React项目中,经常遇到如下代码片段: ```javascript const [watchValue, setWatchValue] = useState(''); const [otherValue1, ...

    7个好用的JavaScript技巧分享(译).docx

    以下是从标题和描述中提取的7个JavaScript技巧的详细说明: 1. **数组去重** 在JavaScript中,去重一个数组可以使用ES6的Set数据结构。Set会自动去除重复的元素,因此我们可以将数组转换为Set,然后再转换回数组,...

    JavaScript使用技巧大全

    JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责客户端的交互和动态效果。...在"JS技巧大全"这个压缩包中,你将找到更多实用的示例和详细讲解,进一步拓宽你的JavaScript知识领域。

    Beginning.JavaScript.5th.Edition

    Chapter 17: Other Javascript Libraries Chapter 18: Common Mistakes, Debugging, And Error Handling Appendix A: Answers To Exercises Appendix B: Javascript Core Reference Appendix C: W3C Dom Reference ...

    Speaking JavaScript

    Background: Understand JavaScript’s history and its relationship with other programming languages. Tips, tools, and libraries: Survey existing style guides, best practices, advanced techniques, ...

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    The [removed] Functional Programming for JavaScript Developers course will take you on a journey to show how functional programming when combined with other techniques makes JavaScript programming ...

    JavaScript Patterns

    and other language-specific categories, the abstractions and code templates in this guide are ideal -- whether you're writing a client-side, server-side, or desktop application with JavaScript....

    Silverlight初学者的入门课程

    ### Silverlight初学者的入门课程知识点汇总 #### 第一章:什么是Silverlight? - **定义与历史**:Silverlight是由微软公司开发的一款基于Web的技术,首次发布于2007年4月。它旨在作为Adobe Flash的一个强有力的...

    javascript面向对象编程指南 2nd

    javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...

    JavaScript: Moving to ES2015

    JavaScript: Moving to ES2015 by Ved Antani English | 24 Mar. 2017 | ASIN: B06XWDKLS8 | 1194 Pages | AZW3 | 9.08 MB Explore and master modern JavaScript techniques with ES2015 in order to build large-...

    初学者c++基础试题

    本资源提供了一个c++基础试题,适合初学者学习和练习。试题包括简答题、代码分析题和编程题,涵盖了c++的多个方面,包括异常处理、容器、迭代器、算法、静态成员、类成员访问权限、面向对象的基本要素等。 一、简答...

    Jimp —— 一个使用 JavaScript 编写的图像处理库

    Jimp 是一个全功能的图像处理库,它完全使用 JavaScript 编写,能够无缝集成到前端和Node.js后端项目中。这个库提供了一系列强大的工具,用于读取、处理和保存图像,使开发者无需依赖外部依赖或库就能进行复杂的图像...

    JavaScript in 10 Minutes

    ### JavaScript in 10 Minutes: Key Insights for Intermediate and Advanced Programmers #### Introduction "JavaScript in 10 Minutes" is a concise guide that aims to provide intermediate to advanced ...

    理解Javascript函数形式参数与arguments

    在函数say的定义中,我们可以看到有三个形式参数:msg、other和garbage,但是当我们调用say函数时,只传递了两个实际参数:'hello'和'world'。因此,arguments.length的值为2,而不是3。 arguments还有一个特殊的...

    USB资料集合,初学者使用

    这个压缩包文件集合提供了一系列关于USB技术的学习资源,包括安装脚本、电路设计图、用户手册和技术文档,非常适合USB技术的初学者。 1. **安装.bat**:这是一个批处理文件,通常用于自动化一系列命令行操作,可能...

    公司培训时用myeclips做的适合初学者的struts2例子

    总结,"公司培训时用myeclips做的适合初学者的struts2例子"是一个实用的教学资源,它结合了Struts2和iBatis两大流行框架,利用MyEclipse的强大功能,为初学者提供了一个完整的Web应用开发实例。通过学习和实践这个...

Global site tag (gtag.js) - Google Analytics