js基础

JS的声明

1.在head标签中使用script标签对JS代码域进行声明

<!-- 声明js代码域 -->
<script type="text/javascript">
			var a=123;
			alert(typeof a)
		</script>

2.在head标签中使用script标签引入外部声明好的js文件

<!-- 外部引入 -->
		<script src="./jsCode/firstJS.js" type="text/javascript" charset="utf-8"></script>

JS中的数据类型

(1)number:数据类型

var a = 123;
var b = 3.12312;
alert(typeof a)

(2)string:字符串类型

var a = '小明';
var b = lala;
alert(typeof a)

(3)boolean:布尔类型

var a = true;
var b = false;
alert(typeof a)

(4)object:对象类型

var b = new Date()alert(typeof a)

(5)null:空对象赋值,主要和undefined进行区分

var c;
alert(typeof d)

(6)undefined:undefined

var c;
alert(typeof c)

JS变量的强转

  • 使用Number( )函数:将其他数据类型转换为数值类型,转换失败返回NaN(not a number )

  • 使用Boolean( )函数:将其他数据类型转换为布尔类型,有值返回true,无值返回false;

<script type="text/javascript">
			var a=123;
			var b = '123'
			var c = '哈哈'
			alert(Number(c))
			alert(typeof Number(c))
</script>

JS的运算符

算数运算符

算术运算中如果两边的数据类型不是number的话,会使用Number( )强转后在进行运算。

  • 加法:+
  • 减法:-
  • 乘法:*
  • 除法:/
  • 余数:%
    • number类型的和number类型的
    • number类型和boolean类型(true—1,false—0)
    • number类型和string类型(*,/,%,-)
    • string类型的数字和string类型的数字(*,/ ,%,-)
    • string类型数字和boolean类型(* ,/ ,%,-)

注:在字符串中‘+’号表示的字符串的连接符,不会参与运算

逻辑运算符

! & && | ||

关系运算符

!=: >= <=

自增运算符

++ – += -=

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js变量的学习</title>
		<script type="text/javascript">
			//算数运算 
			var a = 1
			var b = 2
			var c = true
			var d = '1'
			var e = 'abc'
			// alert(a+b)
			// alert(b+c)
			// alert(c+d)
			// alert(b+d)
			// alert(e-d)
			
			//逻辑运算符
			var a = true
			var b = false
			alert(a&b)
			alert(a&&b)
			
		</script>
	</head>
	<body>
		<h1>js变量的学习</h1>
	</body>
</html>

=运算符

等值运算符:==

先判断类型,类型一致则直接比较。类型不一致,则先使用Number( )进行强转后再进行比较。

等同运算符:===

先判断类型,类型一致则再比较内容,内容一致则返回true, 内容不一致则返回false。类型不一致则直接false。

注:null和undefined==运算时是true,===是false,因为null

对象和对象比的是地址

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js特殊运算符计算</title>
		<script type="text/javascript">
			var a = 1
			var a1 = '1'
			var a2 = true
			var a3 = 'true'
			// alert(a==a1)//true
			// alert(a==a2)//true
			// alert(a==a3)//false
			// alert(a1== a2)//true
			// alert(a1==a3)//false
			// alert(a2==a3)//false
			
			// alert(a===a1)//false
			// alert(a===a2)//false
			// alert(a===a3)//false
			// alert(a1===a2)//false
			// alert(a1===a3)//false
			// alert(a2===a3)//false
			
			alert(null==undefined)//true
			alert(null===undefined)//false
			var str1 = new String('123')
			var str2 = new String('123')
			alert(str1 == '123')//true
			alert(str1 === '123')//false
			
			alert(str1==str2)//false 对象和对象比的是地址
		</script>
	</head>
	<body>
		<h1>js特殊运算符计算</h1>
		<hr >
		
	</body>
</html>

JS逻辑结构

if语句

var a = 1
var b = 5
if (a< b){
	alert(a+b)
}
else if (a==b){
	alert(a+b)
}
else{
	alert(a+b)
}

switch语句

var a = 2
switch(a){
	case 1:
	alert('first')
	break
	case 2:
	alert('second')
	break
	default:
	break
			}

for语句

for(var i=0;i<3;i++){
	alert('hot'+i)
}

while

do while

JS数组的学习

数组的声明

JS的数组长度声明不用指定长度,JS的数组长度是不固定的,会随着元素的数量的改变而改变

		var arr1=Array();//声明方式1
		arr1[0] = 'abc'
		alert(arr1)
		var arr2 = Array(5);//声明方式2
		alert(arr2.length)
		var arr3 = [1,2,3,4,5]//声明方式3
		alert(arr3)

数组的赋值

  • 数组可以存储任意类型的数据
    • 数组名[角标]=值;//角标可以是任意的正整数或者是0
  • 数组的取出:
    • 数组名[角标]/ /返回当前角标对应存储的值
    • 如果角标不存在,返回undefined ;
		var arr1 = []
		arr1[0] = 2
		arr1[1] = '哈哈'
		arr1[2] = true
		arr1[3] = 'abc'
		arr1[10] = 'lala'
		alert(arr1)
		alert(arr1[14])

数组length属性

  • 作用1:数组名。length/ /返回当前数组的长度。
  • 作用于2:数组名. length=新的值/ /动态的改变数组的长度

注意: length>原有长度,则使用空进行填充。
length<原有长度,则从后面进行截取,最后的数据会破删除。

		var arr1 = []
		arr1[10] = 'abc'
		alert(arr1.length)
		arr1.length=100;
		alert(arr1.length)

数组的操作

1、数组的合并: arr.concat(b.c)5/ /数组的合并

2、数组指定间隔符转换字符串:var b=arr . join("-");

3、数组移除最后- -个元素并返回:var ele=arr.pop();

4、数组的追加,返回新的长度: var In=arr. push(“1ol”);//追加的元素可以是一个数组。

5、数组的移除第一个元素:var ele=arr .shift();

6、数组的在开始位置插入指定元素;var a=arr .unshift(“又是周五了”);

7、数组删除指定位置元素: var arr2=arr.splice(1,3,“a”);

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var a = Array(1,2,3)
			var b = Array('lala','哈哈')
			// 数组的合并
			// var d = a.concat(b)
			// alert(d)
			// 数组转换为字符串
			// var d = a.join('-')
			// alert(d)
			// 数组移除最后一个元素并返回这个移除的元素
			// var d = a.pop()
			// alert(d)
			// 数组的追加并返回新长度
			// var d = a.push('lol',1,2,3)
			// alert(d)
			// alert(a)
			// var d=a.reverse()
			// alert(d)
			// var d=a.shift(1,2,3)
			// alert(d)
			// var d = a.unshift('今天天气真好')
			// alert(d)
			// alert(a)
			
		</script>
	</head>
	<body>
		
	</body>
</html>

计算器小实验

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js计算器</title>
		<style type="text/css">
			#showdiv{
				background-image: url(./img/1.jpg);
				background-repeat: no-repeat;
				background-size: cover;
				border-radius: 10px;
				border: solid 2px;
				width: 300px;
				height: 350px;
				text-align: center;
				margin: auto;
			}
			input[type=text]{
				margin: auto: ;;
				margin-top: 20px;
				width: 290px;
				height: 40px;
				font-size: 20px;
			}
			input[type=button]{
				
				background-color: transparent;
				border-radius: 10px;
				width: 50px;
				height: 50px;
				margin-top: 15px;
				margin-left: 6px;
				margin-right: 6px;
				font-size: 30px;
				font-weight: bold;
				
			}
		</style>
		<script type="text/javascript">
			function test(btn){
				var num = btn.value
				switch (num){
					case '=':
					document.getElementById('inp').value = eval(document.getElementById('inp').value)
						break;
					case 'C':
					document.getElementById('inp').value = ''
						break;
					default:
					document.getElementById('inp').value += num
						break;
				}
				
			}
			
			
		</script>
	</head>
	<body>
		<h1>js计算器</h1>
		<div id="showdiv">
			
			<input type="text" id="inp" value="" /><br>
			
			<input type="button" id="" value="1" onclick="test(this)"/>
			<input type="button" id="" value="2" onclick="test(this)"/>
			<input type="button" id="" value="3" onclick="test(this)"/>
			<input type="button" id="" value="4" onclick="test(this)"/><br>
			<input type="button" id="" value="5" onclick="test(this)"/>
			<input type="button" id="" value="6" onclick="test(this)"/>
			<input type="button" id="" value="7" onclick="test(this)"/>
			<input type="button" id="" value="8" onclick="test(this)"/><br>
			<input type="button" id="" value="9" onclick="test(this)"/>
			<input type="button" id="" value="0" onclick="test(this)"/>
			<input type="button" id="" value="+" onclick="test(this)"/>
			<input type="button" id="" value="-" onclick="test(this)"/><br>
			<input type="button" id="" value="*" onclick="test(this)"/>
			<input type="button" id="" value="/" onclick="test(this)"/>
			<input type="button" id="" value="C" onclick="test(this)"/>
			<input type="button" id="" value="=" onclick="test(this)"/>
		</div>
	</body>
</html>

在这里插入图片描述

JS函数

1.函数的声明

方式1:function 函数名(“形参1”,“形参2”…){执行体}

方式2:var 函数名=new Function( “形参1”,“形参2” … “函数执行体”);

注:此声明表明在js中函数是作为对象存在的

// 方式1
function sol(a1,a2){
	alert('我是SB')
}
sol(1,2)
// 方式2
var test2 = new Function('a1','a2','alert("woshi Sb2")')
test2(1,2)
alert(test2)
// 方式3
test03 = function(a1,a2){
	alert('idea3')
}
test03()

2.函数的参数

  • 调用函数可以不赋值;因为变量声明默认为undefined
  • js中的函数在调用时,形参赋值可以不全部赋值,不会报错,但是实参是依次赋值的

3.函数的返回值

​ 1.JS的执行符号

  • ​ 没有小括号则函数名就是一个变量
    • 有小括号则函数会被执行
	<script type="text/javascript">
			test = function(){
				alert('test')
				return 'js'
			}
			alert(test)
			alert(test())
		</script>

​ 2.函数作为实参进行传递

// 函数作为实参进行传递
			var testObj = function(a){
				alert(a())
			}
			
			function test(){
				alert('test')
			}
			testObj(test)

dea3’)
}
test03()


2.函数的参数

- 调用函数可以不赋值;因为变量声明默认为undefined
- js中的函数在调用时,形参赋值可以不全部赋值,不会报错,但是实参是依次赋值的

3.函数的返回值



​		1.JS的执行符号

- ​	没有小括号则函数名就是一个变量
  - 有小括号则函数会被执行

```html
	<script type="text/javascript">
			test = function(){
				alert('test')
				return 'js'
			}
			alert(test)
			alert(test())
		</script>

​ 2.函数作为实参进行传递

// 函数作为实参进行传递
			var testObj = function(a){
				alert(a())
			}
			
			function test(){
				alert('test')
			}
			testObj(test)
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南岸青栀*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值