简单对象
理解: 1. 现实生活
对象
=> 具体一个事物
张三 李四
x100手机 pm001手机
区别:
行为 特征
2. 软件世界
=> 创建一个对象
特征: 属性
行为: 方法
3. 创建一个对象
var obj = {
属性名1:属性值1,
属性名2:属性值2,
...
方法名1:function(){
},
方法名2:function(){
}
}
4. 示例: 创建一个姓名为张三,年龄是20岁,能说话的人对象.
5. 访问对象的属性和方法
点语句访问
对象名.属性名
对象名.方法名()
/*
对象:
属性和方法
属性存在形式:
=> 属性名:属性值 多个属性之间用逗分割
方法存在
=>方法名:function(){}
*/
/*
创建一个姓名为张三,年龄是20岁,能说话的人对象.
属性: 姓名 name 年龄 age
方法: 说话 say
*/
var obj = {
name: '张三',
age: 20,
say: function () {
console.log('人能说话');
console.log('哈哈');
}
}
// var name = obj.name
console.log('name: ',obj.name)
console.log('age: ',obj.age)
obj.say()
简单对象的数据类型
数据类型
两大类:
基本数据类型
number string boolean undefined null
100 'hello' true
复杂数据类型(对象类型|引用类型)
Object Array ...
简单对象类型 数组
{name:'小明'}
var obj = {} //空对象
//字面量方式创建简单对象
var obj = {
name: '小明',
age: 23,
say: function () {
//封装任意代码
console.log('说话')
}
}
//obj称为对象名或者称为引用变量
// obj数据类型 复杂数据类型Object
内存结构图
基本数据类型变量 内存存储形式
电脑: 内存
=> 程序加载到内存中执行
1. 内存两个区域
=> 栈区域
=> 堆区域
2. - 基本数据类型变量存储在栈区域
- 引用变量存储在栈区域
- 对象存储在堆区域
var obj = {
name:'小明',
age: 22
}
console.log('姓名: '+obj.name, ' 年龄:'+obj.age)
// 改变对象属性值小明为大明
obj.name = '大明'
console.log('改变值之后 姓名: '+obj.name, ' 年龄:'+obj.age)
构造函数方式创建简单对象
语法:
var obj = {} //字面量方式
var obj = new Object() // 通过new语句调用构造函数方式创建对象
obj.name = '小明'
obj.age = 22
obj.say = function(){
//代码
}
// var obj = {
// name: '小明',
// age: 22,
// say: function () {
// console.log('说话')
// }
// }
var obj = new Object()
obj.name = '小明' //将小明赋值给对象obj的name属性;
obj.age = 22
obj.say = function () {
console.log('说话')
}
console.log(obj)
obj.say()
案例一
创建一个名为student的学生对象,有属性学号num,性别sex,班级grade, 成绩score, 姓名name
分别用字面量方式创建.
要求打印显示学生信息到页面
// 创建简单对象的方式: 字面量方式创建对象
var student = {
num: 2102039120,
sex: '男',
grade: 'h52112班',
score: 98,
name: '小明',
}
// 访问属性
document.write('姓名: ' + student.name)
document.write("<br>")
document.write('学号:' + student.num)
document.write("<br>")
document.write('性别 :' + student.sex)
document.write("<br>")
document.write('班级 : ' + student.grade)
document.write("<br>")
document.write('成绩 :', student.score)
document.write('姓名: ' + student.name + '成绩 :', student.score)
document.write(student) // [object object]
console.log(student)
案例二
水仙花数: 三位数并且个、十、百位数立方和等于它本身
比如: 371 = 3*3*3+ 7*7*7 + 1*1*1
371/100 = 3
371%100 == 71
71/10
思路: 判断321是否是水仙花数?
分析
水仙花数
=> 三位数
100 - 999
=> 个十百位立方和等它自身
function test() {
var num = 273
var b = parseInt(num / 100) //百位
var s = parseInt(num % 100 / 10) //十位
var g = num % 10
console.log('b ', b, ' s', s, ' g ', g);
}
function test1(){
var b = 3
var s = 7
var g = 1
var num = String(b) + String(s) + String(g)
console.log('num ',num)
}
// test1()
/*
* 水仙花数: 三位数并且个、十、百位数立方和等于它本身
*/
function flow() {
for (var num = 100; num <= 999; num++) {
var b = parseInt(num / 100) //百位
var s = parseInt(num % 100 / 10) //十位
var g = num % 10
if (b * b * b + s * s * s + g * g * g == num) {
console.log(num)
}
}
}
// flow()
// 100 900
function flow1() {
for (var b = 1; b <= 9; b++) {
for (var s = 0; s <= 9; s++) {
for (var g = 0; g <= 9; g++) {
// var num = b * 100 + s * 10 + g
var num = String(b) + String(s) + String(g)
if (b * b * b + s * s * s + g * g * g == num) {
console.log(num)
}
}
}
}
}
flow1()
本文介绍了JavaScript中的简单对象,包括数据类型、内存结构图和两种创建对象的方式:字面量和构造函数。深入讲解了基本数据类型与复杂数据类型的存储区别,并通过实例展示了如何创建和访问对象的属性与方法。同时,提供了两个案例,分别是用字面量方式创建学生对象和判断水仙花数的逻辑。

被折叠的 条评论
为什么被折叠?



