• 雕虫无小技 JavaScript初学者的10个迷你技巧


    在之前的编程语言排行榜中,我们曾介绍过转正在即的JavaScript语言,正如文章中阐明的那样,JavaScript不仅是最具活力的脚本语言,还是是最有用的编程语言之一。因为绝大多数的浏览器都和它兼容,你可以在这些浏览器中使用它。JavaScript被接受的相当快,因为它是如此的简单,而且使用范围相当广泛。许多程序员过去常常认为JavaScript是一门“玩具语言”,但是,AJAX进入市场后表现出了完全相反的一面,它让JavaScript展现出了完全不同的能力和功能。

      由于这个发明的出现,程序员现在已经可以创建带有桌面应用程序效果的Web应用程序了,这是很有益处的,因为数据可以更快地改变。这是一些迷你技巧,它们可以帮助初学者更好地使用JavaScript。JavaScript的使用范围相当广泛,而且还有这么多的风格,所以它可以有很多的技巧。另外,虽然它很多的编程方法,但是我只挑选了10个技巧,我认为这些技巧对初学者理解JavaScript来说是很好的的起点。

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

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


    2. var myArray = [];
    3. 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。例如:

    1. var myString = '23255';
    2. typeof myString; //String
    3.
    4. myString = !!myString;
    5. typeof myString //Boolean

      4,把Number转换成String

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

    1. var mynumber = 234;
    2. typeof mynumber; //Number
    3.
    4. mynumber += '';
    5. typeof mynumber; //String

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

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

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

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

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

    1. function add_nums(){
    2. return arguments.length;
    3. }
    4.
    5. 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开发中,对象最普遍的一个用途是把它们当成函数的参数。要记住函数参数的这个规则总是很困难的;但是,使用一个对象是十分有好处的,因为我们不必再担心参数的规则了。而且,它更有组织性,可以让用户更好的理解我们要做什么。这个方法可以让你把对象当成参数,来组织和改善函数。例如:

    1. function insertData(name,lastName,phone,address){
    2. code here;
    3. }

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

    1. function insertData(parameters){
    2. var name = parameters.name;
    3. var lastName = parameters.lastName;
    4. var phone = parameters.phone;
    5. var address = parameters.address;
    6. }

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

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

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

    1. //Example 1
    2. insertData({name:’Mike’, lastName:’Rogers’,
    phone:’
    555-555-5555’,address:’the address’, status:’married’});
    3.
    4.
    5. //Example 2
    6. var myData = { name:’Mike’,
    7. lastName:’Rogers’,
    8. phone:’555-555-5555’,
    9. address:’the address’,
    10. status:’married’
    11. };
    12.
    13. insertData(myData);

      8,函数就是数据

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

    1. function byId(element, event, f){
    2. Document.getElementById(element).['on'+event] = f;
    //
    f is the function that we pass as parameter
    3. }
    4.
    5. byId('myBtn','click',function(){alert('Hello World')});
    6.
    7. Another example of functions as data:
    8.
    9. //Example 1
    10. function msg(m){
    11. Alert(m);
    12. }
    13.
    14. //Example 2
    15. var msg = function(m){ alert(m);}

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

    1. //Example 1
    2. msg('Hello world'); //This will work
    3.
    4. function msg(m){
    5. alert(m);
    6. }
    7.
    8. //Example 2
    9. msg('Hello world');
    //
    Does not work because JavaScript cannot find the function msg because is used before is been declared.
    10.
    11. var msg = function(m){ alert(m)}

    9,扩展本地对象

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

    1. //We create the method prototype for our arrays
    2. //It only sums numeric elements
    3.
    4. Array.prototype.sum = function(){
    5. var len = this.length;
    6. total = 0;
    7. for(var i=0;i<len ;i++){
    8. if(typeof this[i]!= 'number') continue;
    9. total += this[i];
    10. }
    11. return total;
    12. }
    13.
    14. var myArray = [1,2,3,'hola'];
    15. myArray.sum();
    16.
    17.
    18.
    19.
    20. Array.prototype.max = function(){
    21. return Math.max.apply('',this);
    22. }
    23.

      10,Boolean

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

    1. '' == '0' // false
    2. 0 == '' // true
    3. 0 == '0' // true
    4. false == 'false' // false
    5. false == '0' // true
    6. false == undefined // false
    7. false == null // false
    8. null == undefined // true
    9. true == 1 // true
    10. '' == null // false
    11. false == '' // true
     
  • 相关阅读:
    联合索引和多个单列索引选择
    CentOS6.5 一台服务器同时安装多个Mysql数据库
    一次CentOS的服务器被攻击教训
    java版本的memcache静态化
    mysql存储空间满的处理方式
    MariaDB 10.0 和 MariaDB 10.1 存储过程中 PREPARE FROM EXECUTE 区别
    CentOS6.x 优化脚本
    Mysql 使用 “LOAD DATA INFILE”需要注意的问题
    Mysql 日期类型比较 TIMESTAMPDIFF
    CentOS6.x 源码安装Nginx
  • 原文地址:https://www.cnblogs.com/luluping/p/1912248.html
Copyright © 2020-2023  润新知