JavaScript学习心得(三)

本文探讨了JavaScript中的表达式特性,包括数组与对象初始化的灵活性、属性访问的不同方式以及delete操作符的使用。此外还介绍了JavaScript中特有的语句形式,如空语句、switch和for/in循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript学习心得(三)

今天学习JavaScript的表达式

1.数组与对象的初始化初表达式,这里我发现与之前学习的Java不同的是,java数组中需要初始化数组长度才能引用数组长度范围内的数组项,而JavaScript中,只要初始化数组,则 var array = [];或var array = [1, 2, 3],就可以引用超出数组范围的项,则对于前面的array数组可以 array[6] = 1;对于对象,类似的如下:

<span style="font-size:18px;">var p = {x:3.2, y:-1.2};
p              //=> Object { x=3.2, y=-1.2}
var q ={};
q.x=3.2;q.y=-1.2;
q              //=>Object { x=3.2, y=-1.2}</span>
即使q对象没有事先声明x、y这两个属性,但是在使用时,可以“无中生有”地直接赋值:q.x=3.2; q.y=-1.2;


2.属性访问表达式。这也与java有些不同,JavaSrcipt访问属性以以下两种方式:

expression . identifier

expression [ expression ]

<span style="font-size:18px;">var o = {x:1, y:{z:3}};
var a = [0,4,[5,6]];
o.x              //=> 1
o["x"]           //=>1
o["y"]["z"]      //=>3
a[2]             //=>[5,6]
a[2]["1"]        //=>5
</span>
在 " . " 和 " [ " 之前的表达式总是首先计算,如果再向下一级或深一层访问如o["y"]["z"],那么JavaScript会把它o["y"]转换为对象(如果o["y"]不是对象或数组)继续访问其内部属性,如果o["y"]为null或undefined就是抛出异常,因为null和undefined这两个值不能包含任意属性。如果对象表达式后跟随句点和标识符,则 “ . ” 的访问方式,会查找由这个标识符所指定的属性的值,并将其作为整个表达式的值返回。如果是 ' [ ] '访问方式,则会计算方括号内的表达式的值并将它转换为字符串。所以o["y"]["z"]返回的是一个字符串或undefined(访问一个不存在的属性)。
另外,如果访问的属性是一个保留字或包含空格和标点符号,或是数字(对数组来说)如a[2]["1"],就要使用expression [ expression ]的访问方式,还有,如果当属性名通过运算得出的值不是固定的值的时候,这时必须使用expression [ expression ]访问。


3.delete,这个delete与C++中的delete不同,在JavaScript中它是用来删除对象属性或者数组元素。


语句

1.空语句。表示法如下:

<span style="font-size:18px;"> ;
for(var i=0; i<100; ++i) ;           //空循环
if(isStrue) ;                        //空内容
while(i<100) ;                       //空循环
</span>
注意分号;

2.JavaScript中的switch。switch中的case表达式的值是运行时计算的,而C、C++、java中的是编译时常量。相比之下,JavaScript中的switch比较低效。

3.JavaScript中的for/in

<span style="font-size:18px;">var o = [0,1,2,3,4,5,6]
for(var p in o)          //将属性名字赋值给变量
  console.log(o[p]);      //输出每个属性的值
                         //=>1,2,3,4,5,6
</span>



1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值