JavaScript基本语法(JS)

目录

1.变量的声明

2.数据类型

3.引用(对象)类型

4.JavaScript创建数组

5.javaScript的使用方式

6.运算符

7.分支语句

8.函数和事件

9.系统函数

10.事件

11.字符串

12.正则表达式


1.变量的声明

先声明再赋值 ,所有变量声明时都用variable(var) 赋值的时候才能确定类型

2.数据类型

变量的基本类型有number、string、boolean、undefined(未定义类型,只给了变量名字,并没有给值的变量为undefined)、null五种

注意:跟java的区别把String定义为基本类型

上图typeof(obj)应该返回null类型,结果却是object类型。起初设计是错误的,后来一直沿用了这种错误。

typeof(变量名);  返回该变量名的类型

3.引用(对象)类型

创建构造函数,类似java中的构造方法

创建对象的三种方法

3.1.直接new构造函数,即new Person(); 可以直接调用内部属性和方法

3.2.new Object();给新建的Object对象添加属性和方法,然后调用

3.3.JavaScript对象的json表示法,其属性和方法也需要另外添加,然后才能调用

4.JavaScript创建数组

4.1 var nums = new Array(n);不用给长度,类似java里边的集合,可以指定长度,但是指定长度没用,可以放入比长度多的元素

两种方式遍历数组,第一种for循环,需要用var关键字定义i;

第二种增强for,将:改成in;

4.2 数组的json表示法

var names = ["zhangsan","lisi","wangwu","zhaoliu",200,300];

遍历方式同上。

注意:数组中可以放入不同类型的值

4.3 Array的map使用

键值对形式,不能使用角标打印对应的值,所以不能用for循环遍历;但可以用foreach遍历

也可以把键当成属性来调用,比如map.cn;返回的就是“中国”;

5.javaScript的使用方式

省略.......

主要使用内部和外部引用

6.运算符

=== 代表全相等,比较的是两个对象的引用

例:var n=100;

n==100;true;

n=='100';true;进行类型转换,将int转为string

n==='100';false//先判断类型,类型不一样就false(类型和值都要一样)

===相当于比较引用,==相当于比较值
 

7.分支语句

if...else跟java中有点区别

7.1 var n=100;
if(n){
    document.write("真<br/>");

//条件是一个已经赋值的变量,不是undefined和null,则打印条件内语句

var xxx;或者 var xxx=null;//此处变量最好不要用name,因为name是系统中的关键字,检验不出正确结果
if(name){
    document("真");
}else{
    document.write("假");
}

此处将会打印“假”,因为当变量为null或者为undefined时,会使if条件为false

//条件中变量如果没赋值或者是null,则判断为假

7.2.条件是一个变量并且变量的值为0及假,非0即真。
var age = 0;
if(a){
    document.write(a);
}else{
    document.write("假的");
}
7.3.如果又一个对象,判断是否有一个属性
var object= new Object();
      if(obj.haha){//判断obj是否有该属性,没有为false
}

7.4.如果变量没有声明,则抛出异常
if(heihei){//抛异常
}
解决方法:加try{}
try{
    if(heihei){//抛异常
    }    
}catch(e){
    document.write("出现异常");
}

8.函数和事件

8.1 函数的定义

注意:参数定义n个,调用时传入了m(m<n)个参数,不会报异常,产生的结果为NAN(不是一个数字)

调用时传入了m(m>n)个参数,也不会报异常,超出部分不赋值,自动接收前n个。

如下:

结果为:

注意:js运行时,会先把函数加载完,然后执行其他代码,如果有相同的函数,就会覆盖,然后解析程序。

如果调用同名字的函数,则只能调用最后的函数。

8.2 匿名函数

顾名思义即没有名字的函数,可以把该匿名函数复制给变量。也可以直接调用。

8.3 闭包 保护局部变量

var f1 = function(){
	var n = 10;
	var f2 = function(){
		n++;
		document.write(n+"<br/>");
	}
	return f2;
}

var f3 = f1();//f3是一个闭包
f3();
f3();

9.系统函数

9.1 alert("你好"); 提示框

alert没有返回值,如果用变量接收返回值,将会得到undefined。无论你点击确定还是“X”关闭

9.2 confirm("你好"); 确认框 可以点击确定或者取消的弹窗

confirm方法与alert不同,他的返回值是boolean,当你点击“确定”时,返回true,无论你点击“取消”还是右上角的那个“X“关闭,都返回false。

9.3 prompt();  可以输入文本内容的弹窗

例:prompt("你爱学习吗?","爱"); 第一个参数是提示信息,第二个参数是用户输入的默认值。

当你点击确定的时候,返回用户输入的内容。当你点击取消或者关闭的时候,返回null。

9.4 其他系统函数

parseInt(); 字符串转换整数 返回值为整数

parseFloat(); 字符串转成小数 返回值为实数

isNaN(); 判断是不是不是一个数字,不是数字返回true,是数字返回false

10.事件

onchange(); 发生改变事件

onclick(); 点击事件,一般配合alert()使用

onmouseover(); 鼠标经过

onmouseout(); 鼠标离开

onload(); 用在body上边,查看网页是否加载完毕

<body>
		<form action method="post">
			<input type="text" name="username" id="user" placeholder="请输入用户名..." onchange="change()"/>
			<input type="button" id="btn1" value="点我,please!" onclick="click1()"/>
		</form>
		<div id="div1" onmouseover="over()" onmouseout="out()"></div>
	</body>
	
	<script type="text/javascript">
		var div1 = document.getElementById("div1");
		function over(){
			
			div1.style.backgroundColor="cadetblue";
//			document.write(div1);
		}
		
		function out(){
			div1.style.backgroundColor="blueviolet";
		}
		
		function change(){
			var user = document.getElementById("user");
			alert("内容改变了"+user.value);
		}
		
		function click1(){
			var btn1 = document.getElementById("btn1");
			alert("你点我干嘛?");
			btn1.value="再点一个试试!";
		}
	</script>

11.字符串

String为string的包装类,在js中基本类型也有对应的包装类,将相应首字母大写即是。

关键字 instanceof 判断对象是否为某种类型

常用方法:

substr(0,4); 从0开始,长度为4

substring(5,7); 截取5-7位置上的字符串,含头不含尾

str.valueOf()和str.toString(),会将str变成基本类型。

<script type="text/javascript">
			var str = "abc";
			var str1 = new String("abc");
			document.write(str==str1);
			document.write("<br />");
			document.write(str===str1);
			document.write("<br />");
			var ch = str.charAt(2);
			document.write(ch);
			document.write("<br />");
			var str2 = "java我爱中国,我爱香港,我爱台湾!";
			document.write(str2.substr(0,4));
			document.write("<br />");
			document.write(str2.substring(5,8));
			document.write("<br />");
			document.write(str2.toString());
			document.write("<br />");
			document.write(str2.valueOf());
			document.write("<br />");
			document.write(str2.toString()===str2.valueOf());
</script>

12.正则表达式

RegExp javascript中必须加上开始和结束符号^ $
var reg = new RegExp("reg");或者//    reg=/reg/;
var b = reg.test("str");

i(忽略大小写) g(全局查找) m
str.match(reg); 返回匹配到的数组
str.split(reg); 按照正则表达式拆分

具体参考w3School教程。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值