博客列表 >Javascript基础一

Javascript基础一

虾搞技术Home
虾搞技术Home原创
2019年03月26日 20:03:31697浏览

JavaScript的组成:


完整的JavaScript是由ECMAScript(语法)

Browser Object(DOM、BOM)特性组成。

学习目标:

1.JS的注释与分号


// 单行注释

/**/ 多行注释

语句结束使用分号

2.JavaScript的语法


ECMAScript中的一切(变量,函数名以及操作符)都是区分大小写的。

3.认识标识符


函数、变量、属性的名字、或者函数的参数都叫标识符

命名规则:由字母、数字、下划线_或者美元符号$组成

且不能以数字开头。

不能使用关键字,保留字来命名

4.变量

ECMAScript的变量是松散类型

松散类型:可以用来保存任何类型的数据

5.变量的声明与赋值


变量声明:变量的声明需要使用var操作符

语法:var 变量名

实例

<!DOCTYPE html>
<html>
<head>
    <title>变量</title>
</head>
<body>
  <script>
	var name_01;  //声明
	
	name_01 = "marry"  //赋值
	
		//-同时进行声明和赋值
	var age = 18; //声明的同时赋值
	
		//-一次声明多个变量
	var name ="marry",age=18,email = “marry.qq.com”
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


认识JavaScript的数据类型


基本类型:undefined、unll、Boolean、Number、String

引用类型:object、function、Array

认识typeof操作符

typefo:检测变量的类型

语法:typeof变量 或 typeof(变量)

(变量本身是没有类型的,它的类型取决于它的值)

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
       // typeof
       var name = "marry";
       alert(typeof(name)); //string
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

理解undefined、null

undefined 即为 未定义

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
      var age;
       alert(age); //undefined
       //声明未赋值
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

null:表示一个空的对象指针。
-如果需要某个变量来保存将来的值,那么最好的做法就是将该变量初始化为null

认识Number
number:表示整数和浮点数
理解isNaN()
NaN:即非数值(Not a Number)是一个特殊的数值

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
      var age = 18;
      
       alert(age -3); //15
       
       alert(age - "abc") //NaN
       
       //打印它的类型却是number
       
       alert(typeof age - "abc")  //number
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

说明:

任何涉及NaN的操作(NaN+10)都会返回NaN

NaN不与任何值相等,包括NaN本身
isNaN()语法: isNaN(n) - 检测n是否为 “非数值”

说明:

isNaN()对接收到的数值,会先尝试转换为数值,在检测是否为非数值

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
      var age = 18;
      alert(isNaN(age)) //false
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

掌握数值转换
1)- Number()
当转换的值是string类型时,返回的则是NaN,因为无法得知string值转换过来是多少
parseInt() 和 parseFloat()则是用来把字符串转换成数值的

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
       var age = "18";
    alert(Number(name))  //18
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

(2)- parseInt()
说明:

会忽略字符串前面的空格,直至找到第一个非空格字符(以数字开头,否则返回NaN)

1、parseInt():转换空字符返回NaN

2、parseInt()这个函数提供两个参数:转换时使用的基数(即多少进制)

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
     var breadth = parseInt("50px");
      	alert(breadth) //50
	var a = "a5";
		alert(parseInt(a)); //NaN
		alert(parseInt("0xf",16)); //转换为16进制
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3)- parseFloat()
说明: 从第一个字符开始解析每个字符,直至遇见一个无效的浮点数字符为止(以数字开头,否则返回NaN)

1、除了第一个小数点有效外,其余都无效

实例

<!DOCTYPE html>
<html>
<head>
    <title>数据类型</title>
</head>
<body>
    <script>
     var b = parseFloat("12.2px");
      	alert(b) //12.2";
	var c = parseFloat("0.54aa");
		alert(c) //0.54
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

JS中的string和boolean类型:

string类型用于表示由零或多个16为Unicode字符组成的字符序列,简单的说就是字符串。需要用双引号 (“Some ”)或单引号(‘Some ’) 来表示。


既然Number可以利用内置方法进行转换,那字符串固然也是可以的

toString()与String():


toString:

语法:str.toString(),将str转换为字符串。

说明: 在不清楚值是否为null或undefined的情况下,尽量使用String()函数,它可以将任何类型的值转换为字符串。

实例

<!DOCTYPE html>
<html>
<head>
	<title>string</title>
</head>
<body>
	<script type="text/javascript">
		var id = 23;
		var idstr = id.toString();
		alert(idstr); //23
		alert(String(idstr)); //String()用法
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

这里可能存在疑惑,这个输出不也是数值嘛

但我们可以透过typeof检测就知道是什么类型了

实例

<!DOCTYPE html>
<html>
<head>
	<title>string</title>
</head>
<body>
	<script type="text/javascript">
		var id = 23;
		var idstr = id.toString();
		alert(typeof idstr); //string
		alert(String(typeof idstr)); //String()用法
		
		//不清楚类型使用
		var m; //声明未赋值
		alert(String(m))  //undefined
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

Boolean: 用于表示***的类型,只有两个值,true(真)、false(假)。

类型转换

除0之外的所有数字,转换为布尔型都为true(真)

除" "之外的所有字符,转换为布尔型都为true

null和undefined转换为布尔型为false

什么是表达式

表达式:将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来,有意义的式子称为表达式。 (简单的说就是±/*以及比较的运算)

JavaScript操作符的分类

算数操作符

加:+
减:-
乘:*
除:/
取余:%

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
  <script type="text/javascript">
	var num1 = 10,num2 = 5;
	alert(num1+num2);  //15
	//最简单的算数运算
  </script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

重点:
1.递增:++a与a++都是对a进行递增的操作
区别:++a先返回数值,在递增值

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a=1;
		alert(++a); //2
		//先进行递增再返回值(本身为1,++在前,就是先加在返回)
	</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

a++则是先返回a本身的值,在本身再进行递增

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a=1;
		alert(a++); //1
		//返回自身再进行递增
	</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

递减的操作也是一样的
在算数操作符里,还有一个叫隐式转换

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var num1 = 10,num2 = "5";
		//隐式转换
		alert(num1*num2);  //50
		alert(num1-num2); //5
		
		//如果是字符串呢
		var str = "c";
		alert(num1 - str) //NaN
		//当你使用+号时
		alert(num1+str); //10+c
		//这是因为浏览器把+看成了连接符
	</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

逻辑操作符

赋值操作符

简单的赋值:=
复合赋值:+=、-=、*=、/=、%=

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a = 5;
		//a = a +5 麻烦的写法
		a+=5;
		alert(a);
		//他们的结果都为10,其他都一样操作
		var str = "Hello"
		str+="world"
		alert(str)  //起到连接作用
	</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

比较操作符

>    <   >=    <=

== 为 等于(值相等)、===全等(数据类型与值都相等)、!=不等、!==不全等

== 、 ===

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var x = 10, y = "10";
		z = x ==y; //只比较值
		console.log(z) //true
		z= x === y; //比较值同时也比较类型
		console.log(z) //false
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var x = 10,y="10";
		//!=为取反操作
		z = x != y  //false
		z = x !== y; //true
		console.log(z)
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

三元操作符

语法:条件?执行代码1:执行代码2
说明: 可以替代简单的if语句;(效率高且更加简洁)
如果条件成立,执行代码1,否则执行代码2.

实例

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var soce = 85;
		var result = (soce >= 60)?"及格":"不及格";
		console.log(result); //及格
		//soce>=60为true,返回第一条执行代码。
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

逻辑操作符
&&:与
只要有一个条件不成立,就会返回false

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	var num1 = 10,num2 = 20,num3 = 30;
	console.log(num1<num2 && num2 ==num3);//false
	console.log(num2 < num3 && num3 > num1); //true
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

说明: 在有一个操作数不为布尔值得情况,逻辑与操作就一定返回值,此时它遵循下列规则:

如果第一个操作数隐式转换为true后,则返回第二个操作数(当第一个值被转换为布尔值时,就会返回第二个值

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
//之前讲过所有的字符串除了""为false,其余都为true,所有数字除0以外,其余全为true
	var num3 = 30,
		str = "welcome";
		console.log(str && num3) //30(返回第二个操作数)
	console.log(80 && 50 && "hello"); //hello 多于两位,则返回最后一位
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

如果第一个操作数隐式转换为false,则返回第一个操作数值
(有一个数为null就返回null,有undefined就返回undefined,有NaN就返回NaN)

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	var n =null, num3 = 20;
	colsole.log(n && num3) //null
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

||:或
只要有一个为true,就返回true。

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(0 || "abc") //abc 
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

说明: 在有一个操作数不为布尔值得情况,逻辑与操作就一定返回值,此时它遵循下列规则:


如果第一个操作数隐式转换为true后,则返回第二个操作数(当第一个值被转换为布尔值时,就会返回第二个值)

如果两个操作数null,则返回null

如果两个数为NaN,则则会返回Nan

如果两个数为undefined,则返回undefined

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log("hello" || 0); //hello
	console.log(99 || 0 || "abc"); //99
	console.log("" || 0 || "abc"); //abc
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

!:非

无论操作数是什么数据类型,逻辑非都会返回一个布尔值

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(!false); //true
	console.log(!88); //false
	console.log(!0); //true
	console,log(!null) //true
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

!!同时使用两个逻辑非操作符时:
第一个逻辑非操作会基于无论什么操作数返回一个布尔值,
第二个逻辑非则对改布尔值求反

实例

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(!!false); //false
	console.log(!!""); //false
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议