JavaScript基本语法

JavaScript基本语法 

学习要类比的学习,下面的内容是和java对比进行学习记录的

1.字符串string

java中用双引号引起来的文本内容是字符串;

javascript 中用单引号,双引号引起来的文本内容为字符串;

都可以使用+号进行拼接(在拼接的数据类型中只要有一个是string的话,+的作用就是连接的作用)

2.一行代码的结束

java中是以分号表示代码的结束的;

javascript中是以分号或者回车换行表示代码的结束的;所以在javascript中不能随便的敲击回车键;

3.数值类型number

整数,正数,负数,小数

java中数值类型的定义就多了,int long float double;

javascript中就只有数值类型number

NaN:是表示一个数值的不正常状态;可以通过一个关键字进行判断 IsNaN:是否为非数字;

 

4.查看数据的类型typeof

有两种写法,带括号和不带括号;

typeof(“aaa”);

typeof “vvvv”;

 

5.变量var

定义一个变量,并赋值;

var a;

var b;

a="nihao";

b=123;

typeof(a); //可以同typeof打印变量的数据类型;其实你存的是什么类型打印结果就是什么类型的;

6.boolean数据类型

var a = false;

var b=true;

 

7.undefined 未赋值类型

var a;

表示 声明了变量,但是没有给赋值,则在使用的时候会出现undefined这个提示;

8.算术运算符

和java都一样的;+-*/  %

复杂的数据运算:Math对象;

9.逻辑运算符

&& || 和java也是一样的;

优先级顺序:!>&&>||

10.比较运算符

其他和java一致,但是下面的就不一样了;

==(判断内容是否相等,但是不判断数据类型)

var a="10";

var b=10;

var c=a==b; 结果是true;

但是boolean就不同了,在真是内存中boolean的存储是0或者1;

var a= false;

var b="false";

var c= a==b;  结果是false;

 

===(判断内容,也会判断数据类型)

var a=2;

var b=2;

var c =a===b  结果是true;

但是注意NaN:

var a=NaN;

var b=NaN;

var c =a===b  结果是false;

 

同理:

!=         只判断内容;

!==       判断内容也会判断数据类型;

 

11.数据类型转换

11.1 string to number

var a="100";

var b=Number(a); 则b的数据类型为number;

11.2 

可以是boolean (true会转成1,false会转成0),小数

11.3 转换非数字的字符串

会返回NaN;

11.4 转换一个空字符串

会返回0;

12.其他几种类型转换的方法

12.1  parseInt(String);

转成整数;

省略小数部分;

不会四舍五入;

也可以转换第一个字符为数字,知道转到不是数字的位置;例如:222adb,也会转成222;12.32aaabb22 --》12;

12.2 parseFloat(string)

和parseInt基本一样,只不过会保留小数部分;

 

13.number 转string

var a=100;

var b =a.toString();//b的数据类型为string;

var c= String(a);//c的数据类型也是String;

 

13.数据类型的隐式转换

13.1 数字类型的字符串,通过+-*/可以隐式改变数据的类型;前提是必须是数字的字符串;

13.2  将数字 +“”  就可以转换成字符串类型;

13.3 隐式转换成boolean类型;

var a=100;

var b = !a;  //b就是false了

var c = !!a; //c就是true了;

 

14.if_else 逻辑判断和java是一模一样的;

15. switch_case 逻辑匹配和java也是一模一样的;

16.三元运算符(三目运算符)也是一样的       a>b ? false:true;

17.while,do_while 循环和java也是一样的

18.for循环

for(var i=1;i<100;i++){

       要循环的内容;

}

 

19.object对象

var obj=new Object();

obj.xingming="zhangsan";

obj.age=18;

object相当于一个java中bean对象;只不过不用去定义成员变量,在使用的直接临时定义就可以了;

20. 数组array

 var arr=new Array();

arr[0]="hahah";

arr[1]=199;

数组对象是 不区分数据类型的;

21.函数使用的两种方式;

21.1 函数的声明:

function 函数名(参数1,参数2){

         var aa = 参数1 + 参数2;

         return aa;

}

21.2函数的表达式:(匿名函数)

在JavaScript中函数是一种数据类型,可以通过一个变量来接受这个函数;

所以函数也可以作为函数参数传递:

			var f1 = function (a,b){
				return a+b;
			}
			function getResult(a,b,fn){
				return fn(a,b);
			}
			var result = getResult(1,2,f1);
//			var result = getResult(1,2,function(a,b){
//				return a+b;
//			});
			console.log("执行返回的结果:"+result);

但是在java中函数不是一种数据类型;

var aaa = function(x,y){

         return x+y;

}

//调用

aaa(1,2);

如果通过typeof获取一个函数的类型

typeof(aaa);//function

 

这两种的区别在代码的执行顺序上:

在JavaScript的预解析过程中会把var 定义的变量和function定义函数提前到作用域的最上面;赋值不提前;

		<script type="text/javascript">
			
			//javascript的预解析过程中
			var a;
			function jixuan(a){
				console.log(a);
			}
			
			a=100;
			jixuan(a);
		
			//下面的代码在预解析过程中会变成上面的代码过程;只提前变量的定义和函数的定义;
			//在函数内部的作用域也会进行预解析过程;
//			var a=100;
//			jixuan(a);
//			function jixuan(a){
//				console.log(a);
//			}


			//预解析过程
			function f1() {
				//在函数内部预解析的时候发现只声明了一个局部变量a,而bc都是没有通过var声明的,则是全局的变量;
				var a;
				a=b=c=100;
				console.log(a);//100
				console.log(b);//100
				console.log(c);//100
			}
			f1();
			console.log(b);//100
			console.log(c);//100
			console.log(a);//undefined
			

//			f1();
//			function f1() {
//				var a=b=c=100;
//				console.log(a);
//				console.log(b);
//				console.log(c);
//			}
//			
//			console.log(b);
//			console.log(c);
//			console.log(a);
		</script>

22.JavaScript中没有函数重载这个概念

如果函数名一样的话,会覆盖;不能定义同名的函数(不是绝对的);

23.变量的作用域:

全局作用域;

在script标签下定义的变量,全局可以使用;

局部作用域;

在函数内部定义的变量,只能在函数内部使用的;

在函数内部不使用var生面的变量,就是全局变量,但是这样不推荐使用,在定义变量的时候都要是使用var来声明;

和java的变量的作用域几乎是一样的;

 

24.JavaScript中没有块级作用域:

在java中有块级作用域的,例如;判断 if{},在这个大括号中定义的变量,外部是不能方法的;

在javascript中if{} ,在大括号中定义的变量是在外部是可以访问的;相当于全局变量的了

25. 递归

和java一样,函数自己调用自己;

26.异常的捕获;

和java一样

			try{
				console.log(adc)
			}catch(e){
				console.log("出现异常了")
				console.log(e.message)//adc is not defined
			}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值