zoukankan      html  css  js  c++  java
  • js进阶

    函数

    JavaScript中的函数和Python中的非常类似,只是定义方式有点区别。

    1.最基础函数

    function f1() {
    console.log("hello world");

    }
    f1();


    2.带参数的函数
    function f2(name,age) {
    console.log("姓名:" +name+ "年龄:" +age)
    }
    f2("alex",18);


    3.带返回值的
    function  f3(arg1,arg2) {
    var ret=arg1+arg2;
    return ret;
    }
    var s=f3("alex","h");
    console.log(s);

    4.匿名函数
    var sum=function (arg1,arg2) {
    return arg1+arg2;
    };
    ret=sum(1,2);
    console.log(ret);

    函数的全局变量和局部变量 

    局部变量

              在javascript函数内部声明的变量(使用var)是局部变量,所以只能在函数内部访问他(该变量的作用域

     是函数内部)。只要函数运行完毕,本地变量就会被删除。

    全局变量

                在函数外声明的变量是全局变量,网页上的所有脚本都能访问他。

    变量生存周期

              javascript变量的生命周期从他们被声明的时间开始。

             局部变量会在函数运行以后被删除。

             全局变量会在页面关闭后被删除。

    函数的作用域

    在函数内部查找变量,找不到就到外层函数查找,逐步找到外层。

    1.
    var city="beijing";
    function f() {
    var city="shanghai";
    function inner() {
    var city="shenzhen";
    console.log(city);

    }
    inner();
    }
    f();
    答案:shenzheng
    2.
    var city="beijing";
    function bar() {
    console.log(city);
    }
    function f() {
    var city="shanghai";
    return bar;
    }
    var ret=f();
    ret();

    答案:beijingvar city="beijing";
    function f() {
    var city="shanghai";
    function inner() {
    console.log(city);
    }
    return inner;
    }
    var ret=f();
    ret();

    答案:shangahi


    Date对象

    1.创建Date对象

     //方法一:不指定参数的时候就会打印当前时间

    var d1=new Date();
    console.log(d1.toLocaleString());


    //方法二:具体指定就会按照指定的打印,
    var d2=new Date("2004/3/20 11:20");
    console.log(d2.toLocaleString());


    //但是只写两位就会是 月、日、年 的顺序
    var d3=new Date("04/03/20 11:20");
    console.log(d3.toLocaleString());


    //方法三 这个参数意思是从1970年开始往后计算,单位是毫秒
    var d4=new Date(500000);
    console.log(d4.toLocaleString());
    console.log(d4.toUTCString());


    //方法四 参数为年月日小时分钟毫秒,毫秒不直接显示
    var d5=new Date(2004,2,20,11,10,0,300);
    console.log(d5.toLocaleString());

    2.Date对象的方法
    var d = new Date(); 
    getDate()                 获取日
    getDay ()                 获取星期
    getMonth ()               获取月(0-11)
    getFullYear ()            获取完整年份
    getYear ()                获取年
    getHours ()               获取小时
    getMinutes ()             获取分钟
    getSeconds ()             获取秒
    getMilliseconds ()        获取毫秒
    getTime ()                返回累计毫秒数(从1970/1/1午夜)

    3.练习
    // 将当前日期按“2017-12-27 11:11 星期三”格式输出。
    function getNow() {
    var d=new Date(); //获取当前日期对象
    var dYear=d.getFullYear(); //获取当前年份
    var dMonth=d.getMonth(); //获取当前月份
    var dDate=d.getDate(); //获取当前日期
    var dHour=d.getHours(); //获取当前小时
    var dMinute=d.getMinutes();//获取当前分钟
    var dWeek=d.getDay(); //获取当前星期
    var weekStr=["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期六"];
    if (dMinute<10){
    dMinute="0"+dMinute;
    }
    console.log(dYear + "-" + dMonth + "-" + dDate +" " + dHour + ":" + dMinute + "" + weekStr[dWeek] );
    }
    getNow();

    JSON对象

     var o={"name":"lb","age":18};
    // 对象转换成json字符串
    var s=JSON.stringify(o,typeof o);
    console.log(o,typeof o);
    console.log(s,typeof s);

    // 反序列化(json字符串转换成对象)
    var b=JSON.parse(s);
    console.log(b,typeof b);

    正则相关(RegExp对象)

    //正则相关的示例

    // 方式1
    //第一个参数:正则表达式
    //第二个参数:匹配模式
    var r1=new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}$","g");
    // var s1="alex123";
    // var s2="123alex";
    var s3="ssd123as";
    //测试的时候返回的应该是true和false
    // console.log(r1.test(s1));
    // console.log(r1.test(s2));
    console.log(r1.test(s3));
    console.log(r1.test());


    // 方式2
    var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/g;
    var s1="alex123";
    console.log(reg2.test(s1));

    // =====string对象与正则结合的4个方法=====
    var s2 = "hello world";
    console.log(s2.match(/o/g)); //查找字符串中符合正则的内容
    console.log(s2.search(/d/)); //查找字符串中符合正则表达式的内容位置
    console.log(s2.split(/o/g)); // 按照正则表达式对字符串进行切割
    console.log(s2.replace(/l/g,"s")); //对字符串按照正则进行替换

    ========g和i的简单示例========
    var s1 = "name:Alex age:18";
    console.log(s1.replace(/a/, "哈哈哈")); // "n哈哈哈me:Alex age:18"
    console.log(s1.replace(/a/g, "哈哈哈")); // "n哈哈哈me:Alex 哈哈哈ge:18" 全局匹配
    console.log(s1.replace(/a/gi, "哈哈哈")); // "n哈哈哈me:哈哈哈lex 哈哈哈ge:18" 不区分大小

    Math对象

    var a =Math.abs(-60);  //返回数的绝对值。
    console.log(a);

    var b =Math.exp(-60); //返回 e 的指数。
    console.log(b);

    var c=Math.floor(30); //对数进行下舍入。
    console.log(c);

    var d=Math.log(30); //返回数的自然对数(底为e)。
    console.log(d);

    var e=Math.max(20,30);//返回 x 和 y 中的最高值。
    console.log(e);

    var f=Math.min(40,60);// 返回 x 和 y 中的最低值。
    console.log(f);

    var g=Math.pow(2,3);// 返回 x 的 y 次幂。
    console.log(g);

    var h=Math.random(10,20,30,40);// 返回 0 ~ 1 之间的随机数。
    console.log(h);

    var i=Math.round(20.9);// 把数四舍五入为最接近的整数。
    console.log(i);

    var j=Math.sin(60);// 返回数的正弦。
    console.log(j);

    var k=Math.sqrt(4); // 返回数的平方根。
    console.log(k);

    var l=Math.tan(60); // 返回角的正切。
    console.log(l);
    
    
    
    



























     
  • 相关阅读:
    对scrapy经典框架爬虫原理的理解
    js的处理技巧
    网站登陆的两种方法
    scrapy批量下载图片
    [转]解决scrapy下载图片时相对路径转绝对路径的问题
    scrapy爬取西刺网站ip
    logging的使用方法
    scrapy中的response
    scrapy中的request
    scrapy.Spider的属性和方法
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8127262.html
Copyright © 2011-2022 走看看