1.JavaScript是一种脚本语言
高级编程语言,,和python一样,不需要编译,解释型语言可以基于Node.js进行服务器编程
-
最初是为了做表单验证的,后面用于,网页特效,服务端开发,桌面程序,app,控制硬件,游戏开发等等
-
html-css-JavaScript
-
浏览器组成:渲染引擎,JS引擎,比如谷歌的v8,,,js执行语言是逐行解释的
-
JS组成:ECMAscript 、DOM 、BOM
2.写法
有三种,行内式、内嵌式、外部js文件
<!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>Document</title>
<!-- 2.内嵌式的js -->
<script>
// alert('hei')
</script>
<!-- 3.外部js写法 -->
<script src="my.js"></script>
</head>
<body>
<!-- 1.行内式的js 直接写在元素的内部 -->
<!-- <input type="button" value="唐伯虎" οnclick="alert('秋香')"> -->
</body>
</html>
3.输出语句
<!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>Document</title>
<script>
// 输入框
prompt('请输入年龄')
// alert 弹出警示框 弹出的 给用户看的
alert('计算的结果时:')
// console 控制台输出 给程序员测试用的 f12
console.log('只有程序员才能看到')
</script>
</head>
<body>
</body>
</html>
4.变量
就是一个装东西的盒子,用于存放数据,在内存中开辟一片空间,变量是内存的空间
通过变量名获取数据,甚至可以修改数据
<!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>Document</title>
<script>
// 1.声明了一个age 变量
var age;
// 2. 赋值 把值存入这个变量之中
age = 18;
// 3.输出结果
console.log(age);
// 4.变量的初始化 直接创建并使用
var myname = '717';
console.log(myname);
</script>
</head>
<body>
</body>
</html>
变量案例-弹出用户名
<!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>Document</title>
<script>
// 1.用户输入姓名 并存储到一个变量中
var myname = prompt('请输入名字');
// 2.输出这个输入的
alert(myname);
</script>
</head>
<body>
</body>
</html>
变量的语法扩展
<!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>Document</title>
<script>
// 1.更新变量
// var myname = 'hxb'
// console.log(myname);
// myname = 'wdn'
// // 输出
// console.log(myname)
// 2.声明多个变量
// var age = '19',
// address = '717',
// sex = '2';
// 3.声明变量的特殊情况
// 3.1 只声明不赋值,结果是 undefined,程序也不知道存放的是啥
// var sex;
// console.log(sex);
// 3.2 不声明不赋值,直接使用会导致某个代码报错
// 3.3 不声明直接赋值使用 这是可以的,但是就容易变成全局变量
qq = 110;
console.log(qq);
</script>
</head>
<body>
</body>
</html>
变量的命名规范
和标识符一样,第一个位置不能是数字,驼峰式的命名
可以由字母 下划线_ $ 符开头
严格区分大小写
不能是关键字,保留字name
,如var for while if
等等
变量名必须有意义
驼峰式的命名,如 myFirstName
案例-交换两个变量的值
<!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>Document</title>
<script>
// js 是编程语言,有很强的逻辑性:实现这个思路 先怎么做,后怎么做
// 1. 需要一个临时变量
// 2. 把apple1 给我们的临时变量temp
// 再把apple2 里的给apple1
// 再把临时变量里的内容给apple2
var temp;//声明临时变量
var apple1 = '11';
var apple2 = '22';
temp = apple1;
apple1 = apple2;
apple2 = temp;
console.log(apple1);
console.log(apple2);
</script>
</head>
<body>
</body>
</html>
5.变量的数据类型
<!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>Document</title>
<script>
// int num = 10; java
// var num; //这里的num不能够确定他的数据类型
var num = 10; //num 属于数字型
// js 的变量数据类型只有在程序运行的过程中,根据等号右边的值 才能确定
// js 是动态语言,变量的数据类型是可以变化的
var x = 10; //整型
x = 'pinl'; //字符串
</script>
</head>
<body>
</body>
</html>
数据类型的分类:简单的,复杂的
在js 中 八进制前面加0,十六进制前面加0x;
<!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>Document</title>
<script>
var num = 10;//数字型
var PI = 3.14; //数字型
// 1.八进制 0 ~ 7 程序里数字前面加 0 ,表示八进制;
var num1 = 010;
console.log(num1); //010 八进制,转换为二进制就是 9
var num2 = 012;
console.log(num2);
// 2.十六进制 0~9 a~f #ffffff 数字前面加 0x 表示十六进制
var num3 = 0x9;//输出9
console.log(num3);
var num4 = 0xa; //输出10
console.log(num4);
//3.数字型的最大值
console.log(Number.MAX_VALUE);
//4.数字型的最小值
console.log(Number.MIN_VALUE);
//5.无穷大
console.log(Number.MIN_VALUE * 2); //Infinity 无穷大
//6.无穷小
console.log(-Number.MIN_VALUE * 2); //-Infinity 无穷小
//7.非数字
console.log('pink' - 100); //NaN
</script>
</head>
<body>
</body>
</html>
数字型范围:
alter(Number.MAX_VALUE);
alter(Number.MIN_VALUE);
isNaN()—判断是否为数字
<!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>Document</title>
<script>
//isNaN() 这个方法用来判断非数字,并且返回一个值 如果是hi数字就返回的是 false 如果不是数字就返回 true
console.log(isNaN(12));//false
</script>
</head>
<body>
</body>
</html>
字符串型——单引号,双引号
嵌套原则:外双内单,外单内双
字符串换行:\n
空格:\b
缩进:\t
字符串长度以及拼接
length
字符串拼接——数值相加,字符相连
<!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>Document</title>
<script>
// 1.检测获取字符串的长度 length
var str = 'my name is 11'
console.log(str.length);// 13
//2.字符串的拼接 + 主要有字符串和其他类型相拼接 最终的结果是 字符串
console.log('hxb' + 'wdn'); //字符串的hxb wdn
console.log('hxb' + 22);//hxb22
console.log('hxb' + true);//hxbtrue
console.log(12 + 12);//24
console.log('12' + 12);//1212
</script>
</head>
<body>
</body>
</html>
练习–显示年龄
<!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>Document</title>
<script>
//弹出输入框 prompt 让用户输入年龄(用户输入)
//把用户输入的值用变量保存起来,把刚才输入的年龄与所要输出的字符串拼接(程序内部处理)
//使用alert 语句弹出警示框(输出结果)
var age = prompt('请输入年龄');
var str = '您今年已经' + age + '岁了';
alert(str);
</script>
</head>
<body>
</body>
</html>
布尔型:true 1,false 0
获取变量的数据类型
<!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>Document</title>
<script>
var num = 10;
console.log(typeof num);//number
var str = 'qw';
console.log(typeof str);//string
var flag = true;
console.log(typeof flag);//bollean
var vari = undefined
console.log(typeof vari);//undefined
var timer = null;
console.log(typeof timer);//object
// prompt 取过来的值是 字符型
</script>
</head>
<body>
</body>
</html>
数据类型的转换
- 转换为字符串
<!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>Document</title>
<script>
//1. 把数字型转换为字符串型 变量.tostring()
var num = 10;
var str = num.toString();
console.log(str);
console.log(typeof str);
//2.利用 String(变量)
console.log(String(num));
//3.利用 + 拼接字符串的方法实现转换效果 隐式转换--常用
console.log(num + '');
</script>
</head>
<body>
</body>
</html>
转换为数字型
前两种方法常用些
<!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>Document</title>
<script>
var age = prompt('请输入你的年龄:')
// 1.parseInt(变量) 可以把字符型转换为整型,但是取到的是整数
console.log(parseInt(age));
console.log(parseInt('3.14'));// 取整 3
console.log(parseInt('120px'));//120
console.log(parseInt('re34px'));//NaN
//2.parseFloat(变量) 可以把字符型转换为整型,得到的是 浮点数
console.log(parseFloat(age));
console.log(parseFloat('3.14'));// 3.14
console.log(parseFloat('120px'));//120
console.log(parseFloat('re34px'));//NaN
//3.利用Number(变量)
var str = '123';
console.log(Number(str));
console.log(Number('12'));
//4. 利用算数运算 - * / 隐式转换
console.log('12' - 0);//12
console.log('123' - '12');//111
</script>
</head>
<body>
</body>
</html>
类型转换案例–计算年龄
<!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>Document</title>
<script>
//弹出一个输入框prompt,让用户输入出生年份(用户输入)
//把用户输入的值用变量保存起来,然后用今年的年份减去变量值,结果就是今年的年龄(程序内部处理)
//弹出警示框alert(),把计算的结果输出 (输出结果)
var age = prompt("请输入你的出身年份")
var str = '您的年龄是' + Number(2022 - age);
// 简化
var aa = 2018 - age;
//alert(str);
alert(aa);
</script>
</head>
<body>
</body>
</html>
转换为布尔型——Boolean()函数
代表空、否定的词语会被转换为false
变量的小练习–
alert实现输出多个变量并换行
<!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>Document</title>
<script>
//1.分别提示输入姓名 年龄 性别
//2.输出结果
//注意 alert的参数只有一个,要弹出多个,需要下面这样做
var mingzi = prompt('您的姓名是:');
var age = prompt('您的年龄是');
var sex = prompt('您的性别是:');
var str = '您的姓名是:' + mingzi + '\n' + '您的年龄是:' + age + '\n' + '您的性别是:' + sex;
alert(str);
</script>
</head>
<body>
</body>
</html>
运算符
注意进行计算的时候避免使用浮点数
不要直接比较两个数的值
判断是否能够被整除—取余