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);





























 
posted @ 2017-12-27 21:51  兰博~~  阅读(186)  评论(0编辑  收藏  举报