JavaScript是运行在浏览器端的脚步语言,是由浏览器解释执行的,简称js,它能够让网页和用户有交互功能,增加良好的用户体验效果。
前端开发三大块:
JavaScript是运行在浏览器端的脚步语言,它的作用就是负责网页和用户的交互效果。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Javascripttitle>
<script>
alert('我是内嵌式的js')
script>
<script src='main.js'>script>
head>
<body>
<input type="button" value="确定" onclick="alert('我被点击了!')">
body>
html>
JavaScript是一种弱类型语言,也就是说不需要指定变量的类型, JavaScript的变量类型由它的值来决定,定义变量需要用关键字var,一条 JavaScript语句应该以分号;结尾
定义变量的语法格式:
var iNum =123; var sName = 'Jim'; var inum2 = 1, iNum3 = 2, sSex = '男', sAddress = '山东';
'运行
// 单行注释 /* 这是多行注释 这是多行注释 */
'运行
对象o: Object比如: oDiv
数组a: Array比如:altems
字符串s: String比如:sUserName
整数i: Integer比如: iltemCount
布尔值b: Boolean比如: blsComplete
浮点数f: Float比如: fPrice
函数fn: Function比如: fnHandler
// 定义整型数字
var iNum1 =123;
// 定义浮点数字
var fNum1 = 10.25;
// 定义字符串
var sName = 'Jim';
// 查看数据类型typeof
alert(typeof(iNum1))
alert(typeof(fNum1))
alert(typeof(sName))
// 定义布尔类型
var bIsOk = true;
// 定义undefined类型
var unData;
// 定义空对象
var oData = null;
// 由于历史原因,null值显示object类型,事实上null值属于null类型
alert(typeof(oData))
// 定义object类型
var oPerson = {
name: '历史',
age: 18
};
alert(typeof(oPerson));
alert(typeof(oPerson.name));
console.log(oPerson.name)
// 定义多个变量
var iNum2 = 3, sStr = 'lisi';
console.log(iNum2, sStr)
函数就是可以重复使用的代码块,使用关键字 function定义函数。
函数调用就是函数名加小括号,比如函数名(参数[参数可选])
//函数定义:无参数无返回值
function fnShow(){
alert('我是一个无参数无返回值的函数')
};
//调用函数
fnShow()
//函数定义:有参数有返回值。return可以为函数提供返回值,return后面的代码不会执行。
function fnSum(iNum1, iNum2){
var iResult = iNum1 + iNum2
return iResult
};
// 调用函数
var iNum = fnSum(1, 2);
alert(iNum)
变量作用域就是变量的使用范围变量分为:局部变量和全局变量。
局部变量就是在函数内使用的变量,只能在函数内部使用。
// 局部变量,函数内部定义和使用
function fnShow(){
var iNum = 1;
alert('局部变量函数内弹框:'+ iNum) // js可以字符串和数字直接相加,把数字自动转为字符串,进行拼接
}
fnShow()
// alert('局部变量函数外弹框:'+ iNum) //报错:iNum is not defined,局部变量不能再函数外部使用
// 全局变量,函数外部定义,函数内外均可使用,并且一变百变。
var iNumber = 10
function fnModify(){
alert('全局变量函数内弹框:'+ iNumber);
iNumber = 30; // 不用象python 那样加 globle
iNumber ++ // 等价于 iNumber += 1
iNumber += 1 // 等价于 iNumber += 1
}
fnModify()
alert('全局变量函数内修改后,函数外弹框:'+ iNumber)
条件语句就是通过条件来控制程序的走向
假如=5,查看比较后的结果:
// if 条件判断,结合比较运算符
var iNum = 5;
var sStr = '5';
if (iNum == sStr) { // 在js里如果数字和字符串进行比较(==、>、<、>=、<=),会自动把字符串转为数字类型,再进行比较
alert( "5 == '5'")
};
if (iNum < sStr) {
alert(" 5 < '5' 成立");
} else {
alert(" 5 < '5' 不成立");
};
var iScore = 80;
if (iScore < 60) {
alert('不及格')
} else if (iScore <= 70) {
alert('<=70')
} else if (iScore <= 80) {
alert('<=80')
} else if (iScore <= 90) {
alert('<=90')
} else {
alert('>90')
}
// 逻辑运算符 &&(and) ||(or) !(非)
var iNum1 = 1;
var iNum2 = 2;
if (iNum1 >= 0 && iNum2 < 2) {
alert('true')
} else {
alert('false')
}
if (iNum1 >= 0 || iNum2 < 2) {
alert('true')
} else {
alert('false')
}
if (!(iNum1 > iNum2)) {
alert('true')
} else {
alert('false')
}
可以使用内置对象 document上的 getElementById方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量.
正常情况下,如果把javascript写在元素的上面,会取不到元素,因为页面上从上往下加载执行的,位于head标签中的javascript去页面上获取body中的元素div1的时候,元素div1还没有加载。
解决方法有两种
head>
<body>
<input type="button" value="确定" onclick="alert('我被点击了!')">
<p id='p1'>我是一个短路标签p>
body>
<script>
//获取标签元素
var oP = document.getElementById('p1'); // js的内置对象,如果返回null说明没有获取成功
alert(oP)
script>
html>
//页面元素加载完成会触发onload事件,获取标签元素,匿名函数
window.onload = function(){
var oP = document.getElementById('p1'); // js的内置对象,如果返回null说明没有获取成功
alert(oP);
};
首先获取的页面标签元素,然后就可以对页面标签元素的属性进行操作,属性的操作包括:
//标签属性的获取和设置
window.onload = function(){
var oBtn = document.getElementById('btn1'); // 根据id获取标签
// 获取标签属性
alert(oBtn.type);
alert(oBtn.value);
// 设置标签属性
oBtn.name = 'username';
// 设置样式属性
oBtn.style.background = 'red';
// 设置类选择器的名称,相当于html中的 class='btnstyle'
// 设置了类选择器名称后,就是联通了js与css的桥梁,所有样式都可以通过style来设置,不用记两套语法了
oBtn.className = 'btnstyle';
};
script>
<style>
/* 通过上面 oBtn.className = 'btnstyle'; 设置的类选择器名称选中 id='btn1' 的元素*/
.btnstyle{
background: rgb(10, 228, 181);
font-size: 2em;
}
style>
head>
<body>
<input type="button" value="确定" id='btn1' onclick="alert('我被点击了!')">
innerHTML可以读取或者设置标签包裹的内容
// innerHTML可以读取或者设置标签包裹的内容
window.onload = function(){
var oDiv = document.getElementById('div1'); // 根据id获取标签
alert(oDiv.innerHTML) //显示标签内容
oDiv.innerHTML = '百度' //设置标签内容
};
数组就是一组数据的集合, javascript中数组里面的数据可以是不同类型的数据好比 python里面的列表。
var aList = new Array(1,2,3);
'运行
var aList2 = [1,2,3,'pej'];
'运行
多维数组指的是数组的成员也是数组,把这样的数组叫做多维数组
var aList3 = [[1,2,3],['a','e','f']]; console.log(aList3[1][2]);
'运行
var aList = [1,2,3,4];
alert(aList.length);
var aList = [1,2,3,4];
alert(aList[0]);
alert(aList[aList.length-1]);
var aList = [1,2,3,4];
aList.push('5');
alert(aList);
var oValue = aList.pop();
console.log(oValue);
alert(aList);
arr.splice(start, num, element1, …, elementN)
参数解析:
var aColors = ['red','green','blue'];
aColors.splice(0, 1); //从下标0开始,删除1个,就是删除第一个元素
alert(aColors);
aColors.splice(1, 0, 'yellow', 'orange'); //从下标1开始删除0个,插入两个
alert(aColors);
aColors.splice(1, 1, 'red', 'purple'); // 从下标1开始删除1个,插入两个
alert(aColors);
循环语句就是让一部分代码重复执行,javascript中常用的循环语句有:
var aColors = ['red','green','blue'];
for (var index = 0; index< aColors.length; index++) {
// 根据下标取值
var oValue = aColors[index];
alert(oValue);
};
// while循环
var aColors = ['red','green','blue'];
var index = 0;
while(index < aColors.length) {
// 根据下标取值
var oValue = aColors[index];
alert(oValue);
index++;
};
// do...while循环
var aColors = ['red','green','blue'];
var index = 5;
do {
// 根据下标取值
var oValue = aColors[index];
alert(oValue);
index++;
} while (index < aColors.length) ;
隐式类型转换
// 字符串拼接用“+”
var sName = 'zhangsan';
var iAge = 18;
var iTel = 130;
alert(sName+iAge);
alert(iTel+iAge);
alert(sName+=iAge);
alert(sName);
定时器就是在一段特定的时间后执行某段程序代码(函数)
js定时器有两种创建方式:
1、作用:以指定的时间间隔(以毫秒计)调用一次函数的定时器
2、语法:setTimeout(func[, delay, param1, param2,…)
setTimeout函数的参数说明:
// 延时定时器
function fnShow(name, age){ // 定时器调用的函数
alert('ok' + name + age);
// 销毁延时定时器,必须在函数内部,否则定时器还没执行,就被销毁了
clearTimeout(iTid);
};
var iTid = setTimeout(fnShow, 500, ' zhangsan ', 40); //500(延时时间), ' zhangsan '(函数参数一), 40(函数参数二)
alert(iTid); //定时器id
1、作用:以指定的时间间隔(以毫秒计)重复调用函数的定时器
2、语法:setInterval(func[, delay, param1, param2…)
// 重复定时器,无限循环,可用于网页轮播图等,可以手工销毁
function fnShow1(name, age){ // 定时器调用的函数
alert('ok' + name + age);
};
function fnStop(){
clearInterval(iTid); // 销毁重复定时器
};
var iTid = setInterval(fnShow1, 5000, ' zhangsan ', 40); //
</script>
</head>
<body>
<input type="button" value="停止" onclick="fnStop()">