1.创建js变量
<script>
// JS中有变量声明,PHP没有
var username = "朱老师";
let age = 33; // 块级作用域
const gender = "male"; // 常量
console.log(username, age, gender); // 打印
course = "JS编程";
console.log(course);
// 全局对象,window
// js中的变量步骤,先声明,再使用(更新/删除)
// 声明
let email;
console.log(email);
// 赋值:第一次也叫做初始化
email = "admin@qq.com";
console.log(email);
// 更新:第二次以及以后的赋值都叫做更新
email = "123456@qq.com";
console.log(email);
// 通常是将声明与初始化合并来写
let work = "teacher";
// 等价于下面的两行代码
// let work;
// work = "teacher";
console.log(work);
// undefined:变量已经被声明,但没有初始化;或者理解为变量已存在,只不过它的值未定义
email = undefined;
// 删除:赋值为空
email = null;
console.log(email);
</script>

2.数据类型
<script>
// 1.原始类型:基本类型,string(字符串),number(数值),boolean(布尔)
var age = 88; // 数值类型
// var 允许重复声明,且不支持块作用域
// var userName = "Peter";// 字符串类型
// var userName = "猪Peter";
// console.log(userName, age);
// 变量尽可能使用let声明
let userName = "Peter";
// let禁止重复声明,但允许更新
userName = "猪Peter";
let work = "teacher";
let isWork = true; // 布尔类型
console.log(userName, age, work, isWork);
// 2.特殊类型:null,undefined
// 已声明未赋值的变量,默认值是undefined
let name; // 未赋值的变量
console.log(name);
// null 通常用来代表空对象
let obj = null;
console.log(obj);
// typeof:查看类型
console.log(typeof obj);
console.log(typeof name);
// 3.对象类型:object(对象object、数组array、函数function都属于对象类型)
// 对象是由属性和方法组成,只要是对象,就可以给它添加属性和方法
// object类似php中的关联数组
const user = {
id: "1001",
name: "Peter",
getInfo: function () {
// JS中的+相当于PHP中的.都是字符串拼接符
// return "id= " + this.id + ",name = ", +this.name;
// 在php中将变量放在双引号直接解析,在js中可以将变量放在反引号进行解析
// 这种语句叫:模板字面量
// return `id = ${this.id}, name = ${this.name}`;
// return `${this.id}: ${this.name}`;
return "Hello Word!";
},
};
console.log(user);
// console.table只返回属性
console.table(user);
// 调用对象的属性方法
console.log(user.getInfo());
// 合法标识符:与PHP一致,包括:英文字母、数字、下划线
const car = {
car_brand: "吉普",
// 属性名称中如果存在非法标识符,就必须用双引号转成字符串
"car color": "red",
"car-country": "USA",
car: function () {
return "性能好吗?";
},
"car H": function () {
return "很好!";
},
};
console.log(car.car_brand);
// 对于属性名称中的非法标识符,必须使用方括号
console.log(car["car color"]);
console.log(car["car-country"]);
// 调用属性方法时需要加()
console.log(car.car());
console.log(car["car H"]());
</script>
