一、变量
1. 变量是什么,有什么用
-
2. 声明(定义)变量
3. 赋值, 再次赋值会覆盖原值
// 变量的声明
var username;
var age;
// 变量的赋值
username = '张三';
age = 18;
// 变量的声明和赋值同时进行
var username2 = '李四';
console.log(username2); // 李四
username2 = '王五';
console.log(username2); // 王五
// 下面是错误做法,不应该重复声明
var username2 = 'chenliu';
二、js 变量命名规范
1. 区分大小写(html 不区分大小写)
2. 标识符(比如变量名称等) (1) 以字母、下划线、$开头 (2) 其他字符可以是字母、下划线、$或数字 (3) 驼峰式:小写字母开头,第二个打次首字母大写
3. 注释 单行注释 多行注释
4. 关键字和保留字 关键字:系统在使用 保留字:系统将来可能用到 _ 不能作为标识符来使用 * 用来作标识符就会报错
<body>
<div>asdfasdfasdf</div>
<DIV>ASDFASDFASDFASDF</DIV>
<div data-cardId="654654654654654645646466">必踩的坑</div>
<script>
// 变量 a 和 A 是两个不相同的变量
var a = 100;
var A = 200;
// 驼峰式命名: 小写字母开头,第二个单词首字母大写
var cartId;
var cartList;
// 关键字和保留字,使用了就会报错
var continue;
var if;
</script>
三、变量有哪些类型
1. 数字 Number 类型
- 整数
- 小数
- 最大值和最小值 (了解)
- NAN : 不是数字的数字
typeof 判断变量的类型
<script>
// 数字类型: 整数
var count = 40;
var price = 3.5;
// 最大值和最小值
var maxValue = Number.MAX_VALUE;
var minValue = Number.MIN_VALUE;
// NaN 不是数字的数字 Not a Number
var aaa = NaN;
console.log(typeof count); // number
console.log(typeof aaa); // number
</script>
2. String 类型 字符串
有三种表达方式: 双引号, 单引号, 反引号
- 推荐使用单引号
- 如果字符串中含有引号, 单双引号同时使用
字符串可以通过 + 进行拼接
<script>
// 方式1: 双引号
var username = "张三";
// 方式2: 单引号
var password = '123456';
// 方式3: 反引号(模板字符串)
var text = `我们是中国人`;
// 字符串中包含引号
var text1 = '我们是"中国人"';
// 字符串拼接
var firstName = 'Tom';
var lastName = 'Jame';
var fullName = firstName + lastName;
console.log('fullName:',fullName);
</script>
3. Boolean 类型 true 和 false
只有true和false两个值
- 变量命名一般用疑问句
<script>
var isOpen = true;
var opened = false;
var finished = true;
console.log(typeof isOpen); // boolean
console.log(typeof opened); // boolean
</script>
4. Undifined 类型 undefined
用来表示声明了变量但未初始化(赋值)
<script>
var username;
console.log(username); // undefined
var username2 = 'huruqing';
console.log(username2);
</script>
5. Object 类型
普通对象(无序集合)
- 对象的属性是无序的, 那个属性在前在后都没关系
- 读取属性的两种方式
- 修改对象属性
<script>
// 定义对象
var girlFriend = {
height: 180,
age: 18,
sex: '女',
}
// 读取对象属性, 方式1 常用
console.log('年龄:',girlFriend.age);
console.log('身高:',girlFriend.height);
// 读取对象属性, 方式2 偶尔使用
console.log('身高:',girlFriend['age']);
// 修改对象属性
girlFriend.age = 60;
console.log('修改后的年龄', girlFriend.age);
</script>
数组(特殊对象,有序集合)
<script>
// 1.数组可以存放任意类型的是变量
var arr = [111,'a', true, {a:2}];
// 2.一般情况下,数组成员都是同一个类型
var ages = [10,20,30,40];
/**
* 3.数组成员的读取
* 第一个成员 ages[0];
* 第二个成员 ages[1];
*/
console.log('第一个成员',ages[0]);
console.log('第二个成员',ages[1]);
console.log('第三个成员',ages[2]);
console.log('第四个成员',ages[3]);
console.log('第五个成员',ages[4]); // 没有第五个成员,它的值是: undefined
debugger;
// 4.数组的长度
console.log('数组的长度:',ages.length);
// 5. 读取最后一个成员
var len = ages.length;
console.log('最后一个成员:',ages[len-1]);
</script>
6. Null 类型 null
声明一个变量准备用来存储对象
<script>
var obj = null;
console.log(typeof obj); // object
</script>
资料 1: 课堂练习
- 数据类型有哪几种(提问)
- 数字, 字符串, 布尔, 对象, undifined, null
- 什么时候数据类型会是 undefined?
- 声明了变量, 但是没有赋值, 变量的值就是undefined
- 字符串有哪几种形式,一般用那种?
- 单引号, 双引号, 反引号(模板字符串)
- 常见的数字有哪些?
- 整数, 小数, 最大值和最小值
- var obj = {name: ‘王菲’, age: 40} ,用两种方式在控制台打印属性值 name 的值
- console.log(obj.name);
- console.log(obj[‘name’]);
- 数组练习
(1) 打印对象里数组的长度
a. console.log(result.list.length);
b. var arr= result.list; console.log(arr.length);
(2) 打印数组最后一个成员的所有属性值
console.log(result.list[result.list.length-1]); // 不太好的做法
// 获取数组的长度
var len = result.list.length;
// 获取最后一个成员
var item = result[len-1];
// 打印该成员的所有属性
console.log(item.categoryId);
console.log(item.name);
console.log(item.iconUrl);var result = {
"code": 666,
"msg": "success",
"list": [{
"categoryId": 145,
"name": "时令鲜果",
"iconUrl": "/img/fresh/other/r1.png"
}, {
"categoryId": 243,
"name": "海鲜水产",
"iconUrl": "/img/fresh/other/r2.png"
}, {
"categoryId": 279,
"name": "家禽蛋",
"iconUrl": "/img/fresh/other/r3.png"
}, {
"categoryId": 346,
"name": "地方农产",
"iconUrl": "/img/fresh/other/r4.png"
}, {
"categoryId": 436,
"name": "百果园公司",
"iconUrl": "/img/fresh/other/r5.png"
}, {
"categoryId": 357,
"name": "农品茗茶",
"iconUrl": "/img/fresh/other/r6.png"
}, {
"categoryId": 6,
"name": "五谷杂粮",
"iconUrl": "/img/fresh/other/r7.png"
}, {
"categoryId": 311,
"name": "牛羊肉",
"iconUrl": "/img/fresh/other/r8.png"
}]
}
资料 2: 作业
作业1:
把老师上课的代码全部自己敲一遍到三遍, 把有疑问的地方记录下来
作业2:
作业要求: 把答案写在语雀上, 提交作业发语雀链接即可
- 变量是什么,有什么用?
- 变量有哪几种数据类型,其中简单(基本)数据类型有哪些,复杂(引用)数据类型又有哪些?
- undefined 和 null 有什么区别?
- 根据链接里迪丽热巴的个人信息, 使用一个对象来存放她的个人信息, 迪丽热巴个人介绍
- 定义一个对象存放电影详情页面的数据
- 定义个数组存放电影列表数据信息(至少 5 条信息)
- 定义一个对象, 存放特惠页面信息
- 附加题: 有一个数组, var starList = [‘赵丽颖’, ‘迪丽热巴’, ‘佟丽娅’, ‘王丽坤’, ‘李丽珍’, ‘邓丽君’];;把数组成员输出到页面上.
附加作业:
- 完成卖座网电影详情静态页面的编写
- 完成水果生鲜销售这个网站静态页面的编写
- 使用今天所学的知识去描述水果生鲜每个页面的信息