day04-artTemplate&学生档案系统&router&serveStatic

输出Studentd对象的多种方式 ##目的:输出Studentd对象 /注意在Student对象中重写toString,否则输出的是地址/ Student xiaoming = new Student("201701","小明","男","20","70"); Student xiaohua = new Student("201702","小花","女","19","80"); Student zhangs... 阅读详情

模板引擎

目标

  • 能够使用模板引擎渲染数据
  • 能够使用模板引擎进行原文输出
  • 能够使用循环输出数据
  • 能够知道如何引用子模板
  • 能够知道如何如何进行模板继承

基本概念(★★★)

模板引擎是第三方模块。
让开发者以更加友好的方式拼接字符串,使项目代码更加清晰更加易于维护

[外链图片转存失败(img-e5YrlUW6-1568473328611)(images/artTemplate.png)]

art-template模板引擎

入门使用(★★★)

  • 利用npm命令下载 art-template 库 npm install art-template

  • 创建js文件,引入 art-template 库

    const trempalte = require('art-template');
    
  • 引入拼接的数据源

    //引入path库
    const path = require('path');
    //拼接路径,这里最好用绝对路径
    const views = path.join(_dirName,'views','index.art');
    //关联到 template里面
    const html = template(views,{
        name: '德玛西亚'
    });
    
  • 创建.art 渲染模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
        <!--标准语法-->
        <p>{{ name }}</p>
        <!--原生语法-->
        <p><%= age%></p>
    </body>
    </html>
    

输出语句

标准语法用 {{}}(★★★)

在大括号里面可以进行逻辑运算

<p>{{ 1 + 1 }}</p>
<p>{{ 1 + 1 == 2 ? '相等' : '不相等' }}</p>
<p>{{ content }}</p>

如果说需要解析html标签,需要在变量前面加 @ 符号

<p>{{@ content }}</p>
原生语法 <%= %>

可以进行逻辑运算

<p><%= 1 + 2%></p>
<p><%= 1 + 1 == 2 ? '相等' : '不相等' %></p>
<p><%= content%></p>

如果说需要解析html标签,需要在变量前面加 - 符号

<p><%- content%></p>

条件判断

标准语法 {{if 条件}} … {{/if}} (★★★)
{{if age > 18}}
	年龄大于18
{{else if age < 15 }}
	年龄小于15
{{else}}
	年龄不符合要求
{{/if}}
原生语法 <% if (value) { %> … <% } %>
<% if (age > 18) { %>
	年龄大于18
<% } else if (age < 15) { %>
	年龄小于15
<% } else { %>
	年龄不符合要求
<% } %>

循环

标准语法 {{each 数据}} {{/each}}(★★★)
<ul>
	{{each users}}
		<li>
			{{$value.name}}
			{{$value.age}}
			{{$value.sex}}
		</li>
	{{/each}}
</ul>
原生语法 <% for() { %> <% } %>
<ul>
	<% for (var i = 0; i < users.length; i++) { %>
		<li>
			<%=users[i].name %>
			<%=users[i].age %>
			<%=users[i].sex %>
		</li>
	<% } %>
</ul>

子模版

使用子模板可以将网站公共区块(头部、底部)抽离到单独的文件中

标准语法 {{include ‘模板’}}(★★★)
{{ include './common/header.art' }}
...
{{ include './common/footer.art' }}
原生语法 <%include(‘模板’) %>
<% include('./common/header.art') %>
...
<% include('./common/footer.art') %>

模板继承(★★★)

使用模板继承可以将网站HTML骨架抽离到单独的文件中,其他页面模板可以继承骨架文件

[外链图片转存失败(img-jm4wJH3l-1568473328616)(images/模板继承.png)]

但是在html骨架中,有一些内容是不一样的,例如引入的css不同,引入的js脚本不同,所以我们可以通过在骨架中先预留几个位置,让其它功能页面在继承的使用,引入相应自己的文件即可

[外链图片转存失败(img-af4LFRCN-1568473328618)(images/骨架预留.png)]

使用
  • 现在骨架标签中设定预留位置

     <!doctype html>
     <html>
         <head>
             <meta charset="utf-8">
             <title>HTML骨架模板</title>
             <!-- 预留位置,打上标记为 head-->
             {{block 'head'}}{{/block}}
         </head>
         <body>
             <!-- 预留位置,打上标记为 content-->
             {{block 'content'}}{{/block}}
         </body>
     </html>
    
  • 在另外的 模板文件中利用 extends 来进行引入

    <!--index.art 首页模板-->
    <!--extend 进行继承, 后面跟需要继承的文件路径-->
     {{extend './layout.art'}}
     {{block 'head'}} <link rel="stylesheet" href="custom.css"> {{/block}}
     {{block 'content'}} <p>{{name}}</p> {{/block}}
    
  • 在js文件里面输入内容,利用art-templare 进行模板渲染

    //引入 template 库
    const template = require('art-template');
    //引入 path 库,用来处理路径
    const path = require('path');
    //生成路径
    const views = path.join(_dirName,'views','index.art');
    //利用template 进行渲染
    const html = template(views,{
         name: '德玛西亚'
    });
    

模板配置(★★★)

在模板引擎中,如果想使用第三方模块的一些方法,默认我们是不能直接使用的,必须要通过template模块给我们提供的方法,把第三方模块的对象当作变量传递进入

语法:
template.defaults.imports.自定义变量名 = 第三方模板对象;
示例代码
//1. 需要先 下载第三方模块  npm install dateformat
//2. 模板引擎第三方库
const template = require('art-template');
//3. 处理路径的第三方模块
const path = require('path');
const views = path.join(__dirname, 'views', 'index.art');
//4. 格式化日期的第三方模块
const dateFormart = require('dateformat');

//5. 不能直接使用,需要通过 template进行模板配置
template.defaults.imports.dateFormart = dateFormart;

const html = template(views, {
    time: new Date(),
})
console.log(html);

//渲染模板
{{extend './common/layout.art'}}
{{block 'css'}}
<link href='style.css' />
{{/block}}

{{block 'content'}}
<p>{{ dateFormart(time,'yyyy-MM-dd hh:mm:ss') }}</p>
{{/block}}
输出结果
<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title>Document</title>

		<link href='style.css' />

</head>
<body>
		<p>2019-22-16 01:04:17</p>
</body>
</html>

设置模板根目录(★★★)

有的时候我们引入模板会比较多,如果一个一个去进行引入比较麻烦,所以我们可以通过引入模板根目录的形式去进入,这样当我们引入模板文件的时候,它会根据我们传递的名字自动匹配

语法:
template.defaults.root = path.join(__dirname, 模板文件夹名称);

设置模板默认后缀(★★)

可以去设置默认的后缀名,这样我们引入文件省略后缀名

语法:
template.defaults.extname = '.html';

案例介绍 – 学生档案管理(★★)

目标

  • 熟悉模板引擎的应用场景
  • 能够理解其思路
  • 能够创建web服务器
  • 能够链接数据库
  • 能够创建学生集合规则
  • 参照案例能够写出学生档案管理

**知识点:**http请求响应、数据库、模板引擎、静态资源访问

[外链图片转存失败(img-gpqrdITl-1568473328620)(images/学生档案管理.png)]

制作流程

  • 建立项目文件夹并生成项目描述文件
  • 创建网站服务器实现客户端和服务器端通信
  • 连接数据库并根据需求设计学员信息表
  • 创建路由并实现页面模板呈递
  • 实现静态资源访问
  • 实现学生信息添加功能
  • 实现学生信息展示功能

实现思路

引入 http 模块,创建web服务

//引入http模块,用来创建服务器
const http = require('http');
//开启服务
const server = http.createServer();
//监听请求
server.on('request', (req, res) => {
    res.end('<h1>ok</h1>');
})
//监听端口号
server.listen(8080);
console.log('启动服务器成功');

需要使用到服务器,下载 mongoose 第三方库

//1. npm install mongoose  下载mongodb第三方库
//2. 引入数据库模块
const mongoose = require('mongoose');
//3. 链接数据库
mongoose.connect('mongodb://localhost/students', { useNewUrlParser: true })
    .then(success => console.log('链接成功'))
    .catch(error => console.log(error));

定义用户规则,创建用户集合(定义用户表结构)

const mongoose = require('mongoose');
const student = mongoose.Schema({
    name: {
        //类型
        type: String,
        //是否是必须要填写
        require: true,
        //最小长度
        minlength: 2,
        //最大长度
        maxlength: 20
    },
    age: {
        type: Number,
        min: 10,
        max: 25
    },
    email: String,
    //爱好,数组形式
    hobbies: [String],
    collage: String,
    date: {
        type: Date,
        //默认时间是当前时间
        default: Date.now()
    }
});
//给数据库定义表结构
const studentEntity = mongoose.model('student', student);
//进行模块对象导出
module.exports = studentEntity;

创建路由 router

根据路由功能来进行请求路径的分发,我们如果去进行路由的编写比较的繁琐,这里利用到一个第三方的库,来帮我们做路由的分发 router

  • 1.下载对应的第三方模块 npm install router

  • 2.通过 require来进行模块的引入

    const getRouter = require('router');
    
  • 3.通过 getRouter() 方法获取路由对象

    const router = getRouter();
    
  • 4.在我们监听的请求函数里面开启路由功能

    server.on('request', (req, res) => {
        //第三个参数必须要带上
        router(req,res,()=>{
            //这个函数是我们路由分发完毕后,再会调用此函数
        });
    });
    
  • 5.进行代码编写,第三方库里面帮我们定义好了 get方式请求的处理和post方式请求的处理

    router.get('/index', (req, res) => {
        console.log('index 请求成功');
        res.end('index 请求成功');
    
    })
    router.get('/list', (req, res) => {
        console.log('list 请求成功');
        res.end('list 请求成功');
    })
    

当用户属于 xxx/add 的时候,让给用户显示用户添加的页面,我们需要把模板页面copy到我们的工程目录下,注意:html页面放在views目录下,css要放在 public的css目录下,然后在路由中,用模板引擎 template 来进行渲染

//1.引入 router 模块
const getRouter = require('router');
//2.获取路由对象
const router = getRouter();
//5.引入 art-template模块
const template = require('art-template');
//6.引入 path
const path = require('path');
//设置根路径
template.defaults.root = path.join(__dirname, 'views');
//4.当用户输入了add路径,我们让用户看到添加用户的界面
router.get('/add', (req, res) => {
    let html = template('index.html', {});
    res.end(html);
});
router.get('/list', (req, res) => {
    let html = template('list.html', {});
    res.end(html);
});
server.on('request', (req, res) => {
    //3.开启路由
    router(req, res, () => {
        console.log('请求过来了');
    });
});

使用静态资源第三方库 serve-static

此时还没有完成,因为在html里面进行了css的引入,这里我们需要需要把一些静态资源引入进来,我们可以通过第三方模块来实现 serve-static

  • 1.下载第三方模块 npm install serve-static
  • 2.引入serve-static模块获取创建静态资源服务功能的方法
  • 3.调用方法创建静态资源服务并指定静态资源服务目录
  • 4.启用静态资源服务功能
//1.引入静态资源加载的模块 
const serveStatic = require('serve-static');
//2.得到静态资源加载对象 传递静态资源的路径,方便后续使用
const static = serveStatic(path.join(__dirname, 'public'));

server.on('request', (req, res) => {
    ...
    //3.开启静态资源
    static(req, res, () => {});
});

编写用户添加的接口

修改add.html(add.art) 文件里面 form表单的请求路径跟请求方法(路径:/add,请求方法:post)

//引入 querystring模块,进行数据的解析
const querystring = require('querystring');
//用户提交数据的处理
router.post('/add', (req, res) => {
    let data = '';
    //正在接收数据
    req.on('data', params => {
            data += params;
        })
        //当数据接收完毕
    req.on('end', () => {
        let studentParams = querystring.parse(data);
        student.create(studentParams);
    });
    //插入成功后进行重定向
    res.writeHead(301, {
            'Location': '/list'
        })
        //响应请求
    res.end();
});

编写用户列表的接口

在 list.html(list.art)模板中,编写输出语句,利用标准语法就好

{{each students}}
			<tr>
				<th>{{$value.name}}</th>
				<th>{{$value.age}}</th>
				<th>{{$value.sex == '0' ? '男' : '女'}}</th>
				<th>{{$value.email}}</th>
				<th>
					{{each $value.hobbies}}
						<span>{{$value}}</span>
					{{/each}}
				</th>
				<th>{{$value.collage}}</th>
				<th>{{dateFormat($value.date, 'yyyy-mm-dd')}}</th>
			</tr>
{{/each}}

在list的路由分发的函数里面,进行查询所有学生信息,然后通过模板引擎进行渲染

//引入 时间格式化 模板引擎
const dateFormat = requre('dateformat');
//给模板引擎配置其他模块
template.defaults.imports.dateFormat = dateFormat;
//这里我利用的是 异步的 async 跟 await 来实现,也可以通过 Promise的.then().catch() 来实现
router.get('/list', async(req, res) => {
    //查询数据库里面所有学生信息
    let students = await student.find();
    let html = template('list.html', { students: students });
    res.end(html);
});
Nodejs第4天案例-学生档案管理.zip 立即下载

相关推荐

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 466

nodejs--两个子文件如何共享同一个头文件

当开发页面时可能会有同时写好几个页面,但每个页面代码变化不大的情况,此时如果按部就班的写写会大大降低写代码的效率。所以如果我们写一个文件可以继承到子文件中,就可以提升效率。 写一个js文件用来响应服务器端,在网页显示。 我设置了app.html 与 app2.html,这两个子文件。一个head.html这个头文件被继承。 //const { render } = require("art-template"); const express = require("express") const ap

欣欣酱博客 413

QGIS插件实战:用百度地图AOI数据做个城市公园分析,从下载到出图全记录

本文详细介绍了如何利用QGIS的百度地图AOI插件进行城市公园分析,从插件安装、数据获取到空间分析与可视化全流程。通过实战案例演示了公园面积统计、服务范围缓冲区分析及专题地图制作,帮助用户高效完成城市绿地评估工作。

weixin_30790841的博客 556

artTemplate&学生档案系统&router&serveStatic

模板引擎 目标 能够使用模板引擎渲染数据 能够使用模板引擎进行原文输出 能够使用循环输出数据 能够知道如何引用子模板 能够知道如何如何进行模板继承 基本概念(★★★) 模板引擎是第三方模块。 让开发者以更加友好的方式拼接字符串,使项目代码更加清晰更加易于维护 [外链图片转存失败(img-shFXWFwQ-1568462765880)(images/artTemplate.png)] art-t...

码化疼 395

为什么你的SiC MOSFET仿真不准?可能是离子注入的‘沟道效应’在捣鬼(Silvaco BCA模块详解)

本文深入分析了SiC MOSFET仿真中离子注入沟道效应的关键影响,揭示了Silvaco BCA模块在模拟SiC晶向和角度参数时的核心设置要点。通过详细解析晶圆偏切与注入角度的等效关系,提供优化MOSFET沟道区注入仿真的五步实战方法,帮助工程师将阈值电压仿真误差从26%降低到5%以内。

weixin_26789847的博客 410

继电器管理策略(二)

介绍了电池管理系统中的继电器管理,包含控制和诊断

manjixingkong1234的专栏 419

node中常用的第三方模块router、sever-static

1.router 其功能是实现路由 使用方法: 获取路由对象 调用路由对象创建路由 启动路由 使用代码: const getRouter = require('router') const router = getRouter(); router.get('/index', (req, res) => { res.end('Hello World!') }) server.on...

就是有点怕怕的博客 678

Python爬虫实战——如何自动爬取百度搜索结果页面

本文介绍了如何使用Python爬虫抓取百度搜索结果页面的内容,包括如何构建搜索URL、获取页面HTML、解析内容、处理翻页以及存储数据等。通过该教程,您可以轻松实现批量抓取百度搜索结果,并为后续的数据分析和处理打下基础。希望本文能为您在爬虫开发、数据分析等领域提供帮助。如果您在实际应用过程中遇到问题,可以参考反爬虫应对策略,并结合实际需求进行调整。

2201_76125261的博客 1711

模板引擎art-template应用 案例 ---- 学生档案管理

小案例 ---- 学生档案管理。涉及知识点: http请求响应,数据库,模板引擎,静态资源访问

weixin_47505105的博客 535

RK3576 Buildroot 双机 ADB 异常排障实录:同版 `boot.img`,一台可识别一台不可识别

进程在跑”不等于“USB 枚举成功”,adbd存活只是必要不充分条件。生产环境中的全局别名可能反向污染系统脚本。shell 命令替换中的字符串问题,必须做字节级验证(od -tx1相比“改环境规避”,核心脚本对输入做鲁棒处理更可长期维护。

小灰灰的博客 212

我的python学习之路

Python 是一门功能强大且易于学习的编程语言,广泛应用于数据分析、人工智能、Web 开发、自动化等领域。以下是一个 Python 学习路径的总结,帮助你系统地掌握 Python 编程。

数据知道的博客 3万+

javascript模板引擎:art-template文档笔记

基本按照手册,过了一遍,当自己熟悉下: 1.github地址: https://github.com/aui/art-template 2.引入文件: lib/template-web.js 兼容IE8,还需要引入example/web-ie-compatible/*.js 3.语法: 支持2种:标准语法 和 原始语法 标准语法:支持基本模板语法以及基本javascript表达式 原

beyond__devil的博客 4224

从 SAP GUI 走向 SAP Fiori:一套面向 SAP S/4HANA 的用户迁移实战方法论

SAP S/4HANA转型中,用户从SAP GUI迁移到Fiori的难点在于业务价值的重构而非简单的界面替换。Fiori的核心价值在于角色化、实时洞察和智能决策,而非完全替代GUI。成功迁移需分阶段推进:先展示关键角色的价值,建立统一入口,再逐步提高Fiori占比。让用户参与设计比后期培训更重要,需通过具体场景(如采购优先级管理)展示效率提升。迁移策略应平衡新旧界面优势,让Fiori成为业务价值触达的主要方式,而非强制替换。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 236

模板引擎简介和art-template模板引擎基本使用

一、模板引擎概念 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 模板引擎不属于特定技术领域,它是跨领域跨平台的概念。在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。 二、模板引擎原理 模板引擎的实现...

kiku 2052

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java第十二课. Math&Object

Java第十二课. Math&Object 回顾 1.String 的特性:[不变性],值在创建之后不能再修改; 2.StringBuffer 和 StringBuilder:可变的字符串,效率高,以后在拼接字符串的时候,尽量 使用二者(append);单线程用 StringBuilder,线程不安全;多线程的情况下,使用 StringBuffer; 3.方法参数传递:[基本数据类型/String]作为参数传递的是[值的一个副本]给形参,在方法内对形参做操作,不影响实参的值->值传递; [数组

zhuang15的博客 444

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SJphp复习

开发环境 WAMP开发环境:运行PHP WEB应用程序的软件环境,包括Windows客户端的web浏览器,以及服务端的apache、php和mysql数据库等。 LAMP开发环境:Linux、Apache、MYSQL、php HTML表格、表单 基础语法 语言标记:php是一种嵌入式脚本语言,XML风格和简短风格 标识符 以大写字母、小写字母或下划线_开头 由大写字母、小写字母、下划线_或数字组成 变量标识符区分大小写 用户自定义的类和函数、内置的结构以及关键字(echo、while、c

sticker_start_tag的博客 371

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

KOA学习(07):art-template模板语法

1.语法 art-template 支持标准语法与原始语法。标准语法可以让模板易读写,而原始语法拥有强大的逻辑表达能力。 标准语法支持基本模板语法以及基本 JavaScript 表达式;原始语法支持任意 JavaScript 语句,这和 EJS 一样。 2.输出 标准语法 {{value}} {{data.key}} {{data['key']}} {{a ? b : c}} {{a || b}} {{a + b}} 原始语法 <%= value %> <%= data.key %&gt

LAZYPET BLOG 362

JAVA中XML读写

XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列、Oracle系列、InpriseBorland系列等)也都把支持XML开发作为宣传口号之一。由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试。笔者先

2033

art-template 模板引擎使用总结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34209406的博客 621

模板 art-template

1. 第一个模板 const template = require('art-template'); const path = require('path'); const views = path.join(__dirname, 'views', '01.art'); const html = template(绝对路径, { name: '张三', age: 20, content: '<h1>我是标题</h1>' }) console.log(html); 2 模板

qq_39218277的博客 170

Java习题(二)

一、选择题(共30题,单选每题1.5分,多选每题2分少选错选不得分,共50分) 1、【单选题】 (单选题)在Java中,下面代码段运行后,a、b、c的值分别为()。 int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++); A.1,3,2 B.1,2,3 C.2,3,2 D.2,3,3 【正确答案】A 【答案解析】此题目考查的是Java中的算术运算符和三目运算符。 本题中计算a+b>3的值为false,所以c的值为冒号后的b++,而b++的值

m0_46180365的博客 2639

C语言字符型变量sex,全国2003年4月高等教育自学考试计算机软件基础(一)试题...

课程代码:02243第一部分 选择题(共40分)一、单项选择题(本大题共40小题,每小题1分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.C语言正确的类型说明符是()A.CharB.charC.realD.string2.C语言中,...

weixin_33190917的博客 3121

nodejs相关2

1、模板引擎art-template用法示例: 安装方法:在指定目录下,输入npm install art-template 需要在浏览器中引用该模板 &lt;script src="node_modules/art-template/lib/template-web.js"&gt;&lt;/script&gt; &lt;script type="text/template" id="tp...

lgl_19910331的博客 216

art-template的子模版与模板继承

art-template 的子模版与模板继承 核心语句: {{ extend './layout.html }} {{ block 'header' }} ... {{ /block }} 模板页(layout.html) 可以设计为网页的模板页,包括固定的头部样式和底部样式,以及需要的一些连接,可以通过 {{ block ‘name’ }}默认内容{{ /block }} 给继承了模板网页的子网页设计 留空 部分,让其自由插入,最后在浏览器中会将两个网页整合成为一个网页 <!DOCTYPE htm

qq_45228330的博客 531

javascript教程(4)——对象基础知识和数组的属性,方法

1.对象基础知识 1.1 对象的概念 什么是对象,很多人其实比较难回答。其实生活中什么都是对象,比如一个人就是一个对象,这个人有年龄,性别,身高等等属性,同时他还有很多的功能或者说方法,比如说走路,跑,跳等等。 在ECMA中把对象定义为:“无序属性的集合,其属性可以包含基本值、对象、或者函数。”       JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,J...

wydsnza的博客 400
上一篇: JavaScript基础第06天笔记
下一篇: day03-数据库概念&mongodb使用&数据库CLUD操作
Smart_coding
博客等级 码龄7年 21粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值