目录
一、JS基础
组成:ECMAScript( 基础语法 )、web APIs (DOM、BOM)
(1)三种写法
1.行内式
<input type="button" value="点我试试" onclick="alert('hello World')"/>
2.内部
<script>
alert('Hellow World');
</script>
3.外部
<script src="my.js"></script>
注意:
外部的两个script标签之间不能写代码,无效。
约定所有JS里面的代码用单引号,和HTML区别开
(2)注释
4.单行注释 ctrl + /
5.多行注释shift + alt + a
(3)输入输出语句
输入:prompt(‘请输入您的姓名:’) 出现对话框:
输出:document.write('网页输出内容')、alert('弹出警告对话框的内容')、console.log('控制台输出内容')
<script>
// 这是一个输入框
prompt('请输入您的年龄');
// alert 弹出警示框 输出的 展示给用户的
alert('计算的结果是');
// console 控制台输出 给程序员测试用的
console.log('我是程序员能看到的');
</script>
BOM
二、变量
用户输入的数据通过变量存储起来
本质:变量是程序在内存中申请的一块用来存放数据的空间。
变量在使用时分为两步:1.声明变量 2.赋值(字面量)
案例:
<script>
// 1.姓名
let uname = prompt('请输入姓名')
// 2.年龄
let age = prompt('请输入年龄')
// 3.性别
let gender = prompt('请输入性别')
document.write(uname, age, gender)
</script>
注意:
1.JS可不写分号;
2.let比var好用,用let
3.变量不是数据本身,它们仅仅是一个用于存储数值的容器。可以理解为是用来装东西的纸箱子
1 基础语法
let 变量名
let age = 18 (变量赋值 变量初始化)
= 这个符号我们也称为 赋值运算符
2 更新变量语法
3 交换变量案例
4 命名与规范
三、数组
arry: 将 一组数据存储在单个变量名下
注意:编号从0开始,数组字面量用[ ] 中括号表示
let arr = []
术语:
四、常量
五、数据类型
(1)数字类型number:整数、小数、正数、负数
优先级:
案例-计算圆的面积
<script>
// 1.页面弹出输入框
let r = prompt('请输入半径')
// 2.计算圆的面积
s = 3.14 * r * r
// 3.页面弹出输入框
document.write(s)
</script>
NaN错误类型
isNaN的使用
isNaN() 这个方法用来判断非数字 并且返回一个值 如果是数字返回的是 false 如果不是数字返回的是true
(2)字符串类型string
字符串拼接
模板字符串
//模板字符串用`反引号 内容用${}包裹变量
let age = 18
//使用场景
document.write('我今年' + age + '岁了')
//使用方式
document.write(`大家好,我今年${age}岁了`)
案例-页面输出用户信息
<script>
let uname = prompt('请您输入姓名')
let age = prompt('请您输入年龄')
document.write(`大家好,我叫${uname},今年${age}岁了`)
</script>
(3)其他三种数据类型
1 布尔类型boolean
2 未定义类型(undefined)
工作中的使用场景:
3 空类型(null)
JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
null 和 undefined 区别:
null 开发中的使用场景:
//计算有区别
console.log(undefined + 1);//NaN
console.log(null + 1);//1
(4)检测数据类型typeof
注意:prompt 取过来的值是字符型的。
通过 typeof关键字检测数据类型
(5)数据类型转换
1 隐式转换
2 显示转换
编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。
(1)转换成数字型
Number (数据)
转换成数字类型
如果字符串有非数字,转换失败时结果为 NaN 不是一个数字
NaN 也是number类型数据 代表非数字
parseInt(数据)
只保留整数
parseFloat(数据)
可以保留小数
(2)转换为字符型
String(数据)
变量.toString(进制)
<script>
//let age = prompt('请输入您的年龄');
// 1. parseInt(变量) 可以把 字符型的转换为数字型 得到是整数
// console.log(parseInt(age));
console.log(parseInt('3.14')); // 3 取整
console.log(parseInt('3.94')); // 3 取整
console.log(parseInt('120px')); // 120 会去到这个px单位
console.log(parseInt('rem120px')); // NaN
// 2. parseFloat(变量) 可以把 字符型的转换为数字型 得到是小数 浮点数
console.log(parseFloat('3.14')); // 3.14
console.log(parseFloat('120px')); // 120 会去掉这个px单位
console.log(parseFloat('rem120px')); // NaN
// 3. 利用 Number(变量)
let str = '123';
console.log(Number(str));
console.log(Number('12'));
// 4. 利用了算数运算 - * / 隐式转换
console.log('12' - 0); // 12
console.log('123' - '120');
console.log('123' * 1);
</script>
用户订单信息案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户订单信息案例</title>
<style>
h2 {
text-align: center;
}
table {
/* 合并相邻边框 */
border-collapse: collapse;
/* 字体表格内居中显示 */
text-align: center;
height: 100px;
/* 表格在页面居中显示 */
margin: 0 auto;
}
th {
padding: 5px 30px;
}
table,
th,
td {
border: 1px solid black;
}
</style>
</head>
<body>
<h2>订单样式</h2>
<script>
// 1.用户输入
let price = +prompt('请输入商品价格')
let num = +prompt('请输入购买数量')
let address = prompt('请输入收货地址')
// 2.计算总额
let total = price * num
// 3.页面打印渲染
document.write(`
<table>
<tr>
<th>商品名称</th>
<th>商品价格</th>
<th>商品总量</th>
<th>总价</th>
<th>收货地址</th>
</tr>
<tr>
<td>小米手机青春PLUS</td>
<td>${price}元</td>
<td>${num}</td>
<td>${total}元</td>
<td>${address}</td>
</tr>
</table>
`)
</script>
</body>
</html>