js基础

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<script>

一.script的引入方式

1.头部引入

2.外部引入(可以在头部,可以在body)

3.body闭标签前引入(也叫内部引入)一般写法

js的调试方式:

1.alert();

2.console.log();

3.document.write();


js的数据:

1.常量

2.变量(容器)


变量定义:

var a = 0;


命名规范:

1.由数字、字母、下划线和$组成,并且数字不能开头

2.不能与系统保留字重名。无二义性

3.变量名不能重复

4.见名知意(驼峰法,匈牙利命名法(一般用于元素命名))

5.不能有空格


数据类型:

1.number

2.string

3.boolean

4.null

5.object

6.undefined

7.NAN

8.[element collection]

9.[node list]

10.[object object] json

11.float 浮点数

12.int 整数


类型转换:

显示类型转换:

Number();

String();

b.toString();

parseInt();

parseFloat();

隐式类型转换:

+ 字符串连接符


运算符:

1.算术运算符 + - * / %

2.赋值运算符 =(copy)

3.复合运算符 += -= /= *= %=

// 4.自增运算符 a++,++a,a--,--a

5.条件运算符 > < >= <= == != === !== 与布尔值连用

== === 区别:是否判断类型

6.逻辑运算符(连接多个条件) && || !

&& : 一假即假

|| : 一真即真

! : 真真假假

注意短路情况

7.三目运算符 条件 ? 表达式1 : 表达式2


表达式:由常量、变量和运算符组成的式子

表达式都有返回值!!!!!


二、分支结构

满足某一条件,执行某一段代码

如果。。。就。。。

if (条件) {

};


如果。。。就。。。否则。。。

if () {} else{};

if (条件1) {


};else if (条件2) {


} else if(条件3){


}。。。。

else{


};


switch...case 

多分支结构

case 后面的值和switch(条件) 决定了到底走哪个分支

注意:break

default 可以不写


三、循环结构

满足某一条件,就重复做某件事

帮助我们做重复的任务


1.while循环

while(循环条件){

循环体;

}

注意:while循环需要控制好循环增量的变化

while循环通常用于不知道循环次数的情况下


2.do。。。while循环

do{

循环体;

}while(循环条件);

不管满不满足条件,都会执行一次循环体中的代码


3.for循环

for(循环增量初始化;循环条件;循环增量的变化){

循环体;

}


4.循环控制

break:跳出本层循环

continue:跳出本次循环


循环桥套:

for (var j = 0; j < 3; j++) {

// 打印3个div

for (var i = 0; i < 3; i++) {

document.write("<div>" + (i + 1) + "</div>");

}

document.write("<br />");

}


四、数组:能够保存多个数据(一组)的变量

var arr = Array();

var arr = [];


遍历:获取到数组中每一个元素.

循环遍历(index 下标)


数组对象的方法

push(); 从尾部给数组添加元素

unshift(); 从头部给数组添加元素

shift(); 从头部删除元素

pop(); 从尾部删除元素

splice(起始位置,长度); 删除某一范围内的元素

splice(起始位置,删除长度,插入元素);插入元素(插在前面) 

arr.concat(); 数组中间不会改变原始数组,而是返回一个拼接好的新数组

sort(fn); 排序: 直接把元素转化为字符串,通过ASCII进行排序(默认)

reverse();数组倒叙


键值对

var json1 = {a:3, b:5, c:"hello"};

json1.a

或 json1["a"]


遍历:for(var key in json1){

json1[key];

}


五、函数:具有一定功能的代码段

从结构分类:

1.无参数无返回值

2.无参数有返回值

3.有参数无返回值

4.有参数有返回值

function fn1(num1,num2){

return num1 + num2;

}


从命名上分类:

1.命名函数

2.匿名函数

应用一:事件绑定

应用二:让一个变量保存函数


定时器:

1.单次定时器

var timer = setTimeout(fn,1000);

clearTimeout(timer);

2.循环定时器

var timer = setInterval(fn,1000);

clearInterval(timer);


eval("var x = 10; var y = 20; document.write(x * y);");

string 一定是可执行的js代码


六、系统对象

1.string对象

var myStr = new String("hello");

var str = "hello";

str.length;字符串长度

str.charAt(下标);查询下标处的字符

str.search("e");查询字符所在的下标,返回第一次出现的位置,如果找不到返回-1


str.concat();数组拼接,也可以用于字符串

str,indexOf();类似于search,可用于数组

str.lastIndexOf();从后往前检索,返回首次出现的下标

str.split();通过所给的字符分割字符串,分割后生成一个数组

join();数组方法,把数组中的元素,用所给字符连接起来

str.substr(下标位置,范围);取子字符串

str.substring(开始位置,结束位置);

str.slice(开始位置,结束位置);数组方法

str.replace(string1,string2);字符串替换 把string1替换成string2

a.toString();类型转换


2.Date对象

var now = new Date(); 记录时间,时间对象

var year = now.getFullYear(); 年份获取

var month = now.getMonth() + 1; 份获取 0 - 11

var day = now.getDate(); 日获取

var weekday = now.getDay(); 星期获取

var hour = now.getHours(); 小时获取 24小时

var minute = now.getMinutes(); 分钟获取

var second = now.getSeconds(); 秒获取

var millisecond = now.getMilliseconds(); 毫秒获取

var time = now.getTime(); 时间戳(1970年1月1日到现在的毫秒数)

var future = new Date(2017,0,2,8,30,60); 获取到指定时间


七、DOM

1.元素获取

document.getElementById(); 通过id获取

document.getElementsByTagName(); 通过标签名

document.querySelector(); 通过css获取一个

document.gquerySelectorAll(); 通过css获取多个


2.oDiv.style.backgroundColor = "";

注意,给属性赋值时,是字符串


3.className

可以通过js动态的改变元素的class属性


4.this 这个

通常情况下,我们用于循环事件绑定,this指代被绑定的对象






























</script>

</body>

</html>

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、付费专栏及课程。

余额充值