javascript基础-第八章:常用对象和函数介绍

本文介绍了JavaScript中的call和apply方法,用于改变函数执行的上下文环境,以及日期对象的使用,包括创建日期、获取时间戳等。还探讨了Math对象的数学运算方法,如平方根、取整等。此外,讲解了字符串对象的常用方法,如length、toUpperCase、indexOf等,并展示了全局函数如decodeURI、encodeURI、eval的功能。
摘要由CSDN通过智能技术生成

第八章:常用对象和函数介绍

1. 理解call和apply

每个函数都有call和apply
可以用来重新定义函数执行的上下文环境,也就是this的指向。
<script type="text/javascript">
    //脚本级变量,顶层的,属于window的
    var name="小红";
    var obj={
        name:"小明",
    }
    function fun(s1,s2){
        //表示当前对象的引用
        console.log(this, this.name+"说:");
        console.log(s1,s2);
    }
    //如果一个函数没有定义在类里,那么这个函数就是属于顶层的,顶层就是window
    fun("哈哈","拉拉");
    //fun.call(obj)第一个参数是一个对象,改变了fun函数的上下文,做到了,让fun函数变成了
    //obj对象的方法了
    fun.call(obj,"这是啥","好玩");
    //apply和call一样,只是参数的调用方式,apply把参数看成是数组
    fun.apply(obj,["这是啥","哈哈哈"]);			
</script>

2. 日期对象

https://www.runoob.com/jsref/jsref-obj-date.html

	<script type="text/javascript">
		/*
			var d = new Date();
			var d = new Date(milliseconds);
			var d = new Date(dateString);
			var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
			*/
		  
		   console.log(t1);
		   var d1=new Date();//当前时间
		   console.log(d1.toDateString(),d1.toTimeString());
		   console.log(d1.toUTCString(),d1.toLocaleString());//UTC 格林威治时间
		   var t1= d1.getTime();//返回的是时间戳,1970-1-1 0:0:0 毫秒
		   var d2=new Date(t1);//用时间戳来生成日期对象
		   console.log(d2.toLocaleString())	;
		   var d3=new Date("2014-1-15");//根据字符串来生成
		   console.log(d3.toLocaleString())	;
		   var d4=new Date(2022, 1, 14, 18, 02);
		   console.log(d4.toLocaleString())	;
		   //
		   var d1=new Date();//当前时间
		   var s=d1.getFullYear()+"年"+(d1.getMonth()+1)+"月"+d1.getDay()+"  "
				+d1.getHours()+":"+d1.getMinutes()+":"+d1.getSeconds();
			console.log(s);
		   
		</script>

3.Math对象

https://www.runoob.com/jsref/jsref-obj-math.html

<script type="text/javascript">
    //Math对象
    console.log("平方根",Math.sqrt(16));
    //floor 向下取整
    console.log("floor取整",Math.floor(3.678));
    //round
    console.log("round取整",Math.round(3.678));
    //保留2个小数点
    console.log("保留2个小数点,",3.6789.toFixed(2));
    //幂函数
    console.log("幂函数,",Math.pow(3,3));
    //随机数 Math.random() 0,1之间的数字
    // (x,y] 随机整数  200<=x<300
    var x=parseInt(Math.random()*(300-200)+200);
    console.log("x=",x);
</script>

4.字符串对象常用方法

<script type="text/javascript">
			//字符串对象
			//1.长度
			s1="abcde"
			console.log("length",s1.length);
			//2.大小写转换
			console.log(s1.toUpperCase(),"ABC".toLowerCase());
			//3.indexOf查找 从左开始,首次出现的位置 不存在-1
			//lastIndexOf
			s1="abcd123a123c"; 
			console.log(s1.indexOf("123"),s1.lastIndexOf("123"));
			//4.charAt(index) 返回index位置的字符
			console.log(s1.charAt(2));
			//5. substr 求子串 substring
			s2=s1.substr(3,5);//从第三个取5个
			s3=s1.substring(3,5);//从第三个取到第5个
			console.log(s2,s3);
			//5.replace替换1个 replaceAll全部
			s1="aa,bb,cc,dd";
			//默认只替换一个
			console.log(s1.replaceAll(",","?"));
			///
			//字符串切割 split 返回的是数组
			var arr=s1.split(",");
			//josin拼接元素,是split反操作
			console.log(arr.join("  "));
			//匹配相关 startsWith已xx开头  endsWith(xx) 已xx结尾
			s1="java高级开发";
			console.log(s1.startsWith("java"),s1.endsWith("开发"));
			//trim() 两边去除空白
			s1="  123   ";
			console.log(s1.trim().length);
			//slice()切片 功能类似求子串 substr,substring
			s1="abcdefghijk";
			console.log(s1.slice(4),s1.slice(0,5),s1.slice(5,10));		
			
		</script>

5.js中全局函数

https://www.runoob.com/jsref/jsref-obj-global.html

<script type="text/javascript">
    //如果一个函数不在一个对象里,那就是全局的,就是window的
    //decodeURI()	解码某个编码的 URI。
    //encodeURI()	把字符串编码为 URI。
    ///home/list?name=张 三";
    //需要对url进行编码
    let url="home/list?name="+encodeURI("张 三");
    console.log(url);
    //home/list?name=%E5%BC%A0%20%E4%B8%89 解码
    url='home/list?name=%E5%BC%A0%20%E4%B8%89';
    console.log(decodeURI(url));
    
    //eval(exp)  用来执行表达式
    console.log(eval("1*2*3*4"));
    //isNaN() 函数用于检查其参数是否是非数字值。
    //如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
    console.log(isNaN("abc"),isNaN("12340"));
    //parseInt() parseFloat() 类型转换
    console.log(parseInt("123abc"),parseFloat("45.67.7"));
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值