第五次网页前端培训笔记(关于JS的一些知识(变量、数据类型、类型转换))

1.JavaScript的简介

         JavaScript是一种具有面向对象能力的、解释性的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。它的主要目的是,验证发往服务器端的数据、增加web互动、加强用户体验度等。

javascript的组成:

2.JS的三种使用方式

1.行内JS

          在HTML标签上直接写JS代码

2.内部JS

         在script标签中写JS代码,script标签可以放在head中或body中(建议放在body标签最后)

3.外部JS

         定义JS文件,通过script标签的src属性引入对应的JS文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>基本使用</title>

	</head>
	<body>
        /*行内JS*/
		<button onclick="alert('hello world');">按钮</button>
        /*内部JS*/
		<script type="text/javascript">
		//console.log("这是一个按钮");
		</script>
		/*外部JS*/
		<script src="./text.js"type="text/javascript"charset="UTF-8"></script>
	</body>
</html>

注:如果script标签设置了src属性。则在script双标签之间的代码不会生效

3.基础语法

1.语句、注释、标识符、关键字

语句:

1.JS代码一行为单位,代码从上往下执行,一行一条语句。

2.语句不加分号结尾,如果一行定义多条语句,每句语句之后必须以分号结尾。(建议都加分号)

3.表达式不需要以分号结尾,如果加了分号则JavaScript引擎会当做语句执行,生成无用的语句。

注释:

1.HTML代码注释:<  !--代码注释-->

2.JS代码注释:

                    //  单行注释

                   /*  多行注释  */

标识符:

        规则:由Unicode字母、_、$、数字组成、中文组成

                  (1)不能以数字开头

                  (2)不能是关键字和保留字

                  (3)严格区分大小写

        规范:(1)见名知意(2)驼峰命名或下划线规则

关键字(保留字)

       声明变量时,不要使用关键字

2.变量

       变量即一个带名字的用来存储数据的内存空间,数据可以存储到变量中,也可以从变量中取出数据。

变量的声明

      JavaScript是一种弱类型语言,在声明变量时不需要指明数据类型,直接用 var 修饰符进行声明。

//先声明再赋值
var a;
a=10;
//声明同时赋值
var a=20;

变量的注意点

(1)若只声明而没有赋值,则该变量的值为 undefined。

(2)变量要有定义才能使用,若变量未声明就使用,JavaScript会报错,告诉你变量未定义。

(3)可以在同一条var命令中声明多个变量。

(4)若使用var重新声明一个已经存在的变量,是无效的。

(5)若使用var重新声明一个已经存在的变量且赋值,则会覆盖掉前面的值。

(6)JavaScript是一种动态类型、弱类型语言,也就是说,变量的类型没有限制,可以赋予各种类型的值。

变量名提升

        JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行的运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>变量</title>
	</head>
	<body>
		<script type="text/javascript">
		//变量名提升
		console.log(flag);
		console.log(name);//undefined
		//1.先声明再赋值
		var a;
		a=1;
		console.log(a);//1
		
		//2.声明并赋值
		var b=2;
		console.log(b);//2
		
		//3.若只声明而没有赋值,则该变量的值为 undefined
		var c;
		console.log(c);//undefined
		
		//4.若变量未声明就使用,JavaScript会报错
		//console.log(d);//d is not defined
		
		
		//5.同一条var命令中声明多个变量
		var aa,bb,cc=10;
		console.log(aa);//undefined
		console.log(bb);//undefined
		console.log(cc);//10
		
		//6.使用var重新声明一个已经存在的变量,是无效的
		var a;
		console.log(a);//1
		
		//7.使用var重新声明一个已经存在的变量且赋值,则会覆盖掉前面的值
		var a=20;
		console.log(a);//20
		
		//8.可以赋予各种类型的值
		var str="hello world";
		var flag=true;
		console.log(str);
		console.log(flag);//true
		</script>
	</body>
</html>

注:变量提升只对var命令声明的变量有效,如果变量不是用var命令声明的,就不会发生变量提升。

3.数据类型

JS是弱语言类型,变量没有类型,但数据本身是有类型的。

undefined

出现undefined的情况:

       (1)变量只声明未赋值,值为undefined

       (2)当定义函数需要形参,调用函数未传递实参时,参数的值为undefined

       (3)当函数没有返回值,接收值为undefined

Null

使用null类型值时注意以下几点:

      (1)使用  typeof  操作符测试  null  返回 object 字符串。

      (2)undefined 派生自null,所以等值比较返回值是 true。未初始化的变量和赋值为 null 的变量相等。

布尔类型

        布尔类型有两个值:true 和  false。常用来做判断和循环的条件。

数值类型

数值型包含两种数值:整型和浮点型。

      (1)所有数字都是以64位浮点数形式存储。所以,JS中 1 与 1.0 相等,而且 1 加上 1.0 得到的还是一个整数。浮点数最高精度是 17 位小数,由于浮点数运算时可能不精确,尽量不要使用浮点数做判断。

     (2)在存储数值型数据时自动将可以转换成整型的浮点数值转为整型。

字符串

       使用单引号或双引号引起来。

       使用加号进行字符串的拼接。

对象

数组    var    数组名 = [ ] ;

对象    var    对象名= { } ;

函数    function  方法名(){ 

  }

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据类型</title>
	</head>
	<body>
		<script type="text/javascript">
			/*undefined类型*/
			//1.变量只声明未赋值,值为undefined
			var a;
			console.log(a);

			//2.当定义函数需要形参,调用函数未传递实参时,参数的值为undefined
			//定义函数  function 方法名([参数]){}
			function fn01(str) {
				console.log(str);
		 }
			//调用方法  方法名([参数]);
			fn01();

			//3.当函数没有返回值,接收值为undefined
			function fn02() {
				console.log("fn02....");
			}
			var b = fn02();
			console.log(b);

			/*null类型*/
			var num = 1;//数值类型
			var flag=true;//布尔类型
			var str="hello";//字符串类型
			console.log(typeof num);//number
			console.log(typeof flag);//boolean
			console.log(typeof str);//string
			
			//1.使用  typeof  操作符测试  null  返回 object 字符串
			var aa=null;
			console.log(typeof aa);//object
			//2.undefined 派生自null,所以等值比较返回值是 true。未初始化的变量和赋值为 null 的变量相等。
			console.log(undefined==null);//true
			//只声明未赋值变量和值为null的变量相等
			var  bb;
			var cc=null;
			console.log(bb==cc);//true
			
			/*数值类型*/
			//1和1.0相等
			console.log(1==1.0);//true
			//1+1.0 等于 2
			var n = 1+1.0;
			console.log(n);
			//将浮点型的整数转换成整型  1.0-> 1
			console.log(1.0);
			
			
			/*字符串类型*/
			//1.使用单引号或双引号引起来
			var s1="hello";
			var s2="world";
			console.log(s1,s2);//hello  world
			//2.使用加号进行字符串的拼接
			console.log(s1+s2);//helloworld
		</script>
	</body>
</html>

4.类型转换

(1)自动类型转换

        1.转字符串:所有的值转字符串都是加引号

        2.转布尔型:有值为 true,无值为 false(0为 false,非0为 true)

        3.转数值型:空值是 0 ,非空的数值型字符串能转换,非数值字符串转换为NaN

(2)函数转换 (String to Number)

         parseInt()        转整数型

         parseFloat()    转浮点型

    注:转换时会从值的第零个位置开始找有效数字,直到找到无效数字为止,parseFloat在转换时会比parseInt多一个小数点。

(3)显示转换(强制转换)

     toString()     将值转换成字符串

     toFixed()      保留指定小数位,可以四舍五入

    注:值不能为null

    JS为Number、Boolean、String 对象提供了构造方法,用于强制转换数据类型,转换的是值的全部。

   注:可以转成null值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>类型转换</title>
	</head>
	<body>
		<script type="text/javascript">
			//parseInt
			console.log(parseInt("123abc")); //123
			console.log(parseInt("abc123")); //NaN
			console.log(parseInt("123.4abc")); //123
			console.log("123"); //123
			console.log(parseInt("123")); //123
			var a = 1;
			var b = "2";
			console.log(a + b); //12
			console.log(a + parseInt(b)); //3

			//parseFloat
			console.log(parseFloat("123abc")); //123
			console.log(parseFloat("abc123")); //NaN
			console.log(parseFloat("123.4abc")); //123.4
			console.log(parseFloat("123.4.5")); //123.4
			console.log(parseFloat("12")); //12

			//tostring()
			var uu = 20;
			console.log(uu); //20
			console.log(uu.toString()); //20
			var zz = null; //空值
			//console.log(zz.toString());// Cannot read properties of null 

			//toFixed()
			var vv = 3.1415;
			console.log(vv.toFixed(2)); //保留两位,四舍五入

			//Number
			var z = "12";
			var x = "g";
			var c = "123abc";
			var v = "123.4";
			var n = "12.3.6";
			console.log(Number(z)); //12
			console.log(Number(x)); //NaN
			console.log(Number(c)); //NaN
			console.log(Number(v)); //123.4
			console.log(Number(n)); //NaN
		</script>
	</body>
</html>

  

猜你喜欢

转载自blog.csdn.net/weixin_64416967/article/details/122821923