JavaScript -- API学习(二)

一、类型转换

1.Number ->  String 

①String(123)          

②(123).toString

2.String  ->   Number

①Number("123")

3.Boolean  ->  String

①(true).toString

②String(true)

4.String  ->  Boolean

①Boolean("true")

5.Date  ->  String

①String(new Date())

   

6.Date  ->  Number

①new Date().getTime()            //获取时间,number类型

7.Boolean   ->  Number

①Number(true)  :  1

②Number(false)  :  0

二、正则表达式

http://www.runoob.com/jsref/jsref-obj-regexp.html

三、异常

            异常是导致程序停止运行的错误代码。

1.一般结构

try{

}catch(error){
    
    //自定义异常
    if(...) {
       throw "错误哦!";
    }
}finally{

}

四、JavaScript的变量提升

           所谓的变量提升,其实就是js在加载js代码的时候,会将所有的声明变量全部提升到js最顶部。

1.代码演示

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var y = 6;
			x = 5;
			alert("x = " + x + "  y = " + y);
			
			var x = 5;
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:可以看到,声明在最前还是在最后,都能达到声明的效果。

2.变量提升不是初始化提升(初始化必须在使用之前进行)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var x,y;
			x = 5;
			alert("x = " + x + "  y = " + y);
			y = 6;
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:可以看到初始化,还应在使用前进行

注意:js官方指定,即使拥有变量提升,但是声明最好还是在js的最顶端进行,这样才符合最为规范的编码方式。

五、严谨模式(use  strict)

1.严谨模式只能声明在js和函数的顶部

2.严谨模式下不能展示变量提升,因为严谨模式是对编码的一种规范,为了更好的适应新版本的js

3.使用实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			"use strict";
			x = 6;     //报错
			alert(x);
			var x;
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:

4.支持浏览器

六、表单验证

1.前台不进行方法验证,使用表单验证

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<form method="post" action="demo-form.php" name="myform">
			<input type="text" name="username" required="required"/>
			<input type="submit" value="提交" />
		</form>
	</body>
</html>

演示结果:

2.前台方法进行验证

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			//验证是否为空
			function validateUserName(){
				var result = document.forms["myform"]["username"].value;
				alert(result);
				if(result == null || /^\s*$/.test(result)){
					alert("不能为空");
					return false;
				}
				return true;
			}
		</script>
	</head>
	<body>
		<form method="post" action="demo-form.php" onsubmit="validateUserName()" name="myform">
			<input type="text" name="username" required="required"/>
			<input type="submit" value="提交" />
		</form>
	</body>
</html>

演示结果:

3.后台验证,直接动过action进行后台校验。

 

七、JavaScript中 this 关键字

1.在函数中,指的是window

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var x= 9;
			function test(){
				alert(this);
			}
		</script>
	</head>
	<body>
		<button onclick="test()">test</button>
	</body>
</html>

演示结果:

2.在对象中,this 是对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var obj = {
				"name":"kuniun",
				myFunction:function(){
					return this;
				}
			}
			
			alert(obj.myFunction());
		</script>
	</head>
	<body>
		<button onclick="test()">test</button>
	</body>
</html>

演示结果:

3.在句柄中,this是该标签对象

<body>
	<button onclick="this.style.color='red'">test</button>
</body>

演示结果:

之前:                                          之后: 

4.在Js中指的是window

<script>
	alert(this);
</script>

5.在严格模式下,指的是undefined

<script>
	"use strict";
	alert(this);
</script>

 

七、Function和箭头函数的区别

1.function函数中的this指的是调用的主体

<script>
	var obj = {
			"name":"kuniun",
			myFunction:function(){
			return this;
		}
	}
			
	alert(obj.myFunction());
</script>

演示结果:这里的主体是obj

2.箭头函数中的this始终指的是Windows

<script>
	var obj = {
		"name":"kuniun",
		myFunction:() => {
		return this;
	    }
	}
			
	alert(obj.myFunction());
</script>

演示结果:Windows

 

八、JavaScript Let 和 Const

1.var的缺点

①全局变量可以对其再次声明 and 赋值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var x= 10;

			{
				var x = 2;
			}
			
			document.write(x);
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:显示最后一次赋值的值,不管在代码块还是全局

2.let的块级作用区域

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var x= 10;
			{
				let x = 2;
			}
			
			document.write(x);
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:使用了let 声明的变量只适用于代码块内,代码块外则无效

3.const 常量修饰符

           const修饰的变量是不能被修改的,但是内容是可以修改的。const和let一样是块级的,所以在不同的级别中声明是没有问题的。

①const修饰的是常量,声明的时候就要赋值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			const x= 10;
			{
				x = 12;
			}
			
			document.write(x);
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:

②内容是可以修改的,是因为const修饰的是地址,那么对象的话地址不变,属性是可以改变的

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			const x= {
				"name":"kunkun",
				"age":12
			};
			
			{
				x.name="kunshao";
			}
			
			document.write(x.name);
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:之前声明的时候是kunkun,之后修改成kunshao。说明const修饰的是地址,而非值

③const和let一样是块级的,所以在不同的级别中声明是没有问题的。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			const x= {
				"name":"kunkun",
				"age":12
			};
			
			{
				const x= {
					"name":"kunshao",
					"age":13
				};
			}
			
			document.write(x.name);
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:

4.注意声明顺序

①let或者const  全局声明,那么var就不能再次声明,不管是不是在代码块中

②let    const      var,在同一级别的作用域中不能同时声明一个变量

 

九、JavaScript 中的JSON

①json转Javascript对象    JSON.parse()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			var text =  '{ "sites" : [' +
						'{ "name":"Runoob" , "url":"www.runoob.com" },' +
						'{ "name":"Google" , "url":"www.google.com" },' +
						'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
			var result = JSON.parse(text);
			document.write(JSON.stringify(result.sites[0]) + "   " + JSON.stringify(result.sites[1]) + "   " + JSON.stringify(result.sites[2]));
		</script>
	</head>
	<body>
	</body>
</html>

演示结果:

②JavaScript对象  转  json字符串    JSON。stringify()

        上面的例子已经给出了对象转json字符串了,否则页面上输出对象的形式是[Object    Object]

 

十、javascript:void(0) 含义

1.javascript:void(0) 是一个死链接,点击之后没有效果

2.javascript:void(alert("ddddd")) 点击之后弹出提示框

3.javascript:void() 指的是返回为空,也就是undefined

4.href="javascript:void(0)"与 href="#"区别  

①javascript:void(0)就是一个死链接,点击没有效果

②href="#"点击会回到该页面,如果#id那么点击之后,会出现跳转的效果。如:回到顶部

      

JavaScript基础学习已经结束,接下来是js函数学习,继续加油。学完js就可以搞一个小项目,熟悉熟悉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值