当前位置: 首页 > article >正文

JavaScript——前端基础3

目录

JavaScript简介

优点

可做的事情

运行

第一个JavaScript程序

搭建开发环境

安装的软件

操作

在浏览器中使用JavaScript文件

分离JS

使用node运行JS文件

语法

变量与常量

原生数据类型

模板字符串

字符串的内置方法

数组

对象

对象数组和JSON

if条件语句

三目运算符

switch条件语句

for和while循环


 

JavaScript简介

  1. JavaScript 是一种轻量级的脚本语言。

  2. 脚本语言:不具备开发操作系统的能力,只用来编写控制其他大型应用程序的“脚本”。

  3. JavaScript 是一种嵌入式(embedded)语言。核心语法不多

优点

  • 操控浏览器的能力

  • 广泛的使用领域

  • 易学性

可做的事情

  • Web/移动端App

  • 实时联网App

  • 命令行工具

  • 游戏

运行

  • 浏览器:有JavaScript引擎

  • Node:包含谷歌浏览器、v8引擎的C++程序。使其可以在浏览器外面跑JavaScript程序。意味着可以用JavaScript程序给网页/移动端app做后端

第一个JavaScript程序

  1. 打开浏览器,Fn+F12

  2. 在控制台console中可以编写JavaScript

  3.  
    
    console.log();//打印

搭建开发环境

安装的软件

  • vscode

  • node.js(安装后一定要重启才会生效)

    1. 执行JavaScript代码

    2. 安装第三方库

操作

  • 在vscode中安装插件:live server

  • 右键文件,open with live server

    • 打开电脑的默认浏览器

    • 页面会自动刷新

在浏览器中使用JavaScript文件

  • 在html文件中,将script标签放在body标签的末尾

    • 浏览器解析文件是自上而下的,需要先将内容渲染出来

分离JS

  • 将JS代码从html文件中剥离出去

  • 创建一个js文件,将js语句写入文件中

  • 在html文件中的script标签中引入js文件

     <script src="index.js"></script>

使用node运行JS文件

  • 在win+r的命令中输入node --version,判断是否安装好了

  • ctrl+`:快捷键打开vscode的终端

  • 输入node 文件名.js:会在终端中输入js文件中的语句

    • 像浏览器一样执行出同样的结果

    • node是用来运行JS的运行环境

语法

  • JS文档

    JavaScript 指南 - JavaScript | MDN Web 中文网

变量与常量

  1. 变量

    • var:全局变量(最好不用)

    • let

  2. 常量

    • const

原生数据类型

  1. String

  2. Number

  3. Boolean

  4. null

    • 一个值被定义为空

  5. underfined

    • 不存在被定义

 //String Number Boolean null underfinedconst username="John";const year=2025;const rate=4.5;const isCool=true;const x=null;const y=undefined;let z;console.log(typeof username);//输出数据类型

模板字符串

  1. 连接字符串

     //连接(老方法)console.log("My name is "+username+" and I am "+age);//模板字符串console.log(`My name is ${username} and I am ${age}`);

字符串的内置方法

 const s="Hello World";console.log(s.length);//字符串长度console.log(s.toUpperCase());//全部大写console.log(s.toLowerCase());//全部小写console.log(s.substring(0,5));//分割字符,起始和终止,左闭右开console.log(s.substring(0,5).toUpperCase());//方法结合console.log(s.split());//字符串转换成数组console.log(s.split(''));//最小分割const m='technology, computers,it, code';console.log(m.split(','));//逗号分割

数组

 //数组,两种申明方式const Number=new Array(1,2,3,4,5);const fruits=['apple','pear','banana'];console.log(Number);console.log(fruits[1]);//pearfruits[2]="orange";//const申明的数组可以被改变内部fruits.push("mango");//数组末尾增加元素用pushfruits.unshift('strawberries');//数组头部添加元素strawberriesconsole.log(fruits);fruits.pop(fruits);//删除数组末尾的元素console.log(fruits);console.log(Array.isArray(fruits));//判断是否是数组console.log(fruits.indexOf("orange"));//得到特定元素的索引

对象

 //对象:拥有属性和方法的数据,表示为键值对的组合//申明一个person变量,{}包含对象,键值对申明属性const person={firstName:"John",lastName:"Doe",age:30,hobbies:['music','movies','sports'],address:{street:"50 main st",city:"Boston",state:"MA",},};person.email="john@gmail.com";//增加属性console.log(person);console.log(person.firstName,person.lastName);//访问选中的属性//结构,更高级的操作//用同名的变量将值从person中抽取出来const {firstName,lastName,address:{city},}=person;console.log(city);

对象数组和JSON

  • 网站:freeformatter.com 将对象数组复制粘贴-formatted json-会给我们自动生成json格式的数据

     [{id:1,text:"Take out trash",isCompleted:true,},{id:2,text:"Meeting with boss",isCompleted:true,},{id:3,text:"Dentist appt",isCompleted:false,},]
  • //对象数组
    const tools=[{id:1,text:"Take out trash",isCompleted:true,},{id:2,text:"Meeting with boss",isCompleted:true,},{id:3,text:"Dentist appt",isCompleted:false,},
    ];
    console.log(tools);
    console.log(tools[1].text);
    //Json是一种数据格式,常被用在api和服务器与客户端的数据传输过程中
    //Json和对象数组类似
    //将JS转化为json格式
    const todoJSON=JSON.stringify(tools)
    console.log(todoJSON);

if条件语句

//if条件语句
//===三等号会考虑数据类型(更常用)
//==双等号不会考虑:10 '10'一样
//||或,&&与
const n=10;
const b=4;
if(n===10||b===4){console.log("n is 10 and b is 4");
}else if(n>10){console.log("n is greater than 10");
}else{console.log("n is less than 10");
}
if(n=='10'&&b==4){console.log("n is 10 and b is 4");
}

三目运算符

//三目运算符(前为真 后为假。?:)
const c=10;
const color=x>10?'red':'blue';
console.log(color);

switch条件语句

//switch语句,一种条件语句
switch(color){case 'red':console.log("color is red");break;case 'blue':console.log("color is blue");break;default:console.log("color is not red or blue");
}

for和while循环

//Forfor(let i=0;i<10;i++){console.log(i);console.log(`For Loop Number:${i}`);}console.log("");for(let i=0;i<tools.length;i++){console.log(tools[i].text);}console.log("");//另一种for的写法for(let todo of tools){console.log(todo.text);}console.log("");//whilelet i=0;while(i<10){console.log(`For Loop Number:${i}`);i++;}

 

相关文章:

JavaScript——前端基础3

目录 JavaScript简介 优点 可做的事情 运行 第一个JavaScript程序 搭建开发环境 安装的软件 操作 在浏览器中使用JavaScript文件 分离JS 使用node运行JS文件 语法 变量与常量 原生数据类型 模板字符串 字符串的内置方法 数组 对象 对象数组和JSON if条件语…...

零基础学习机器学习分类模型

下面将带你通过一个简单的机器学习项目&#xff0c;使用Python实现一个常见的分类问题。我们将使用著名的Iris数据集&#xff0c;来构建一个机器学习模型&#xff0c;进行花卉品种的分类。整个过程会包含&#xff1a; 原理介绍&#xff1a;机器学习的基本概念。数据加载和预处…...

Spring 源码硬核解析系列专题(十):Spring Data JPA 的 ORM 源码解析

在前几期中,我们从 Spring 核心到 Spring Boot、Spring Cloud、Spring Security 和 Spring Batch,逐步揭示了 Spring 生态的多样性。在企业级开发中,数据访问是不可或缺的部分,而 Spring Data JPA 通过简化 JPA(Java Persistence API)操作,成为主流的 ORM 框架。本篇将深…...

视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决

EasyDSS视频直播点播平台是一个功能全面的系统&#xff0c;提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用&#xff0c;能够接收无人机设备的实时视频流&#xff0c;实现无人机视频推流直播和巡检等多种应用。 最近&…...

Oracle23版本 创建用户 报 00959和65096错误解决办法

00959错误解决办法&#xff0c;用户名必须已 c##或者C##开头 65096错误解决办法&#xff0c;创建用户名时去掉DEFAULT TABLESPACE smallrainTablespace这个属性 附上oracle 23版本创建表空间和用户语句&#xff1b; sqlplus sys as sysdba CREATE TABLESPACE smallrainOrac…...

Vue3 中 defineOptions 学习指南

在 Vue 3.3 及之后的版本中&#xff0c;defineOptions 是一个重要的宏&#xff08;macro&#xff09;&#xff0c;主要用于在 <script setup> 语法糖中声明组件的选项&#xff08;Options&#xff09;&#xff0c;解决了传统 <script setup> 无法直接定义组件选项的…...

简单说一下什么是RPC

部分内容来源&#xff1a;JavaGuide RPC是什么 RPC是远程调用 RPC的原理 RPC的五个部分 为了能够帮助小伙伴们理解 RPC 原理&#xff0c;我们可以将整个 RPC 的核心功能看作是下面 5 个部分实现的&#xff1a; 客户端&#xff08;服务消费端&#xff09;&#xff1a;调用…...

Pany-v2:LFI漏洞探测与敏感文件(私钥窃取/其他)自动探测工具

地址:https://github.com/MartinxMax/pany 关于Pany-v2 Pany-v2 是一款 LFI&#xff08;本地文件包含&#xff09;漏洞探测工具&#xff0c;具备自动识别敏感文件的能力。它能够利用 LFI 漏洞检测并提取 id_rsa 私钥、系统密码文件以及其他可能导致安全风险的敏感信息。该工具…...

北京大学DeepSeek与AIGC应用(PDF无套路下载)

近年来&#xff0c;人工智能技术飞速发展&#xff0c;尤其是大模型和生成式AI&#xff08;AIGC&#xff09;的突破&#xff0c;正在重塑各行各业的生产方式与创新路径。 北京大学联合DeepSeek团队推出的内部研讨教程《DeepSeek与AIGC应用》&#xff0c;以通俗易懂的方式系统解…...

AWS SDK for Java 1.x 403问题解决方法和原因

问题表现 使用AWS SDK for Java 1.x访问S3&#xff0c;已经确认文件存在&#xff0c;且具有权限&#xff0c;仍然出现403 Forbidden应答。 解决方法 升级到AWS SDK for Java 2.x。 问题原因 AWS签名机制严格依赖请求的精确路径格式&#xff0c;任何URI的差异&#xff08;如…...

Vue进阶之Vue2源码解析

Vue2源码解析 源码解析目录解析package.json入口查找入口文件确定vue入口this.\_init_ 方法$mount 挂载方法Vue.prototype._renderVue.prototype._updateVue.prototype._patch vue2 vue3 源码解析 目录解析 vue2.6之后的版本都做的是兼容Vue3的内容&#xff0c;2.6版本前的内…...

unity lua属性绑定刷新

我们现在有一个 角色属性类叫heroModel,内容如下,当heroModel中的等级发生变化的时候&#xff0c;我们需要刷新界面显示等级信息&#xff0c;通常我们是在收到等级升级成功的协议的时候&#xff0c;发送一个事件&#xff0c;UI界面接受到这个事件的时候&#xff0c;刷新一下等级…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_t

ngx_conf_t 定义在src/core/ngx_core.h typedef struct ngx_conf_s ngx_conf_t;ngx_conf_s 定义在 src/core/ngx_conf_file.h struct ngx_conf_s {char *name;ngx_array_t *args;ngx_cycle_t *cycle;ngx_pool_t *po…...

gtest 和 gmock讲解

Google Test&#xff08;gtest&#xff09;和 Google Mock&#xff08;gmock&#xff09;是 Google 开发的用于 C 的测试框架和模拟框架&#xff0c;以下是对它们的详细讲解&#xff1a; Google Test&#xff08;gtest&#xff09; 简介 Google Test 是一个用于 C 的单元测试框…...

Ubuntu20.04安装Redis

目录 切换到root用户 使用 apt install redis 安装redis 修改配置文件 ​编辑 重新启动服务器 使用Redis客户端连接服务器 切换到root用户 如果没有切换到root用户的&#xff0c;切换到root用户。 使用 apt install redis 安装redis 遇到y/n直接y即可。 redis安装好之…...

利用 DeepSeek 总结运维知识库的总结报告

一、背景 在运维工作中&#xff0c;知识库是重要的知识沉淀与共享工具。随着公司业务的发展&#xff0c;运维涉及的系统、设备和技术日益复杂&#xff0c;原有的运维知识库内容繁杂、缺乏条理&#xff0c;难以高效检索和利用。为了提升知识库的可用性&#xff0c;我尝试借助 D…...

Go基于协程池的延迟任务调度器

原理 通过用一个goroutine以及堆来存储要待调度的延迟任务&#xff0c;当达到调度时间后&#xff0c;将其添加到协程池中去执行。 主要是使用了chan、Mutex、atomic及ants协程池来实现。 用途 主要是用于高并发及大量定时任务要处理的情况&#xff0c;如果使用Go协程来实现每…...

一个原教旨的多路径 TCP

前面提到过 ECMP 和 TCP 之间的互不友好&#xff0c;pacing 收益和中断开销的互斥&#xff0c;在事实上阻碍了 packet-based LB 的部署&#xff0c;也限制了交换机&#xff0c;服务器的并发性能&#xff0c;同时潜在增加了 bufferbloat 的概率&#xff0c;而适用 packet-based …...

OSPF BIT 类型说明

注&#xff1a;本文为 “OSPF BIT 类型 | LSA 类型 ” 相关文章合辑。 机翻&#xff0c;未校。 15 OSPF BIT Types Explained 15 种 OSPF BIT 类型说明 Rashmi Bhardwaj Distribution of routing information within a single autonomous system in larger networks is per…...

如何获取mac os 安装盘

发现虚拟机VirtualBox支持Mac虚拟&#xff0c;就想尝试一下。但是发现Mac的安装盘特别难拿到&#xff0c;因此留档。 第一种方法 在mac环境下&#xff0c;使用softwareupdate命令来获取mac安装&#xff0c;能获得当前设备支持的系统。 使用这个命令&#xff1a;/usr/sbin/soft…...

【深度学习】强化学习(RL)-A3C(Asynchronous Advantage Actor-Critic)

A3C&#xff08;Asynchronous Advantage Actor-Critic&#xff09;详解 A3C&#xff08;Asynchronous Advantage Actor-Critic&#xff09; 是 深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09; 领域的重要算法&#xff0c;由 DeepMind 在 2016 年提出。…...

vue的双向绑定是怎么实现的

Vue.js 的双向绑定是通过 数据劫持&#xff08;Data Observation&#xff09; 和 发布-订阅模式&#xff08;Publish-Subscribe Pattern&#xff09; 实现的。具体来说&#xff0c;Vue 使用了以下核心技术&#xff1a; 数据劫持&#xff1a;通过 Object.defineProperty 或 Prox…...

在 Mac mini M2 上本地部署 DeepSeek-R1:14B:使用 Ollama 和 Chatbox 的完整指南

随着人工智能技术的飞速发展&#xff0c;本地部署大型语言模型&#xff08;LLM&#xff09;已成为许多技术爱好者的热门选择。本地部署不仅能够保护隐私&#xff0c;还能提供更灵活的使用体验。本文将详细介绍如何在 Mac mini M2&#xff08;24GB 内存&#xff09;上部署 DeepS…...

docker-compose部署onlyoffice8.3.0并支持ssl,且支持通过nginx代理,关闭JWT配置

编写docker-compose文件 mkdir -p /data/onlyoffice && echo "version: 3services:onlyoffice:container_name: OnlyOfficeimage: onlyoffice/documentserver:8.3.0restart: alwaysports:- 8088:80- 64431:443environment:TZ: Asia/ShanghaiJWT_ENABLED: falsevol…...

如何配置虚拟机的IP上网

要配置虚拟机的IP地址以便上网&#xff0c;你可以按照以下步骤操作&#xff1a; 打开虚拟机软件&#xff0c;确保虚拟机的网络设置为“桥接模式”或“NAT模式”&#xff0c;这样虚拟机可以与物理网络连接。 在虚拟机操作系统中&#xff0c;打开网络设置界面&#xff0c;一般在…...

【tplink】校园网接路由器如何单独登录自己的账号,wan-lan和lan-lan区别

老式路由器TPLINK&#xff0c;接入校园网后一人登录&#xff0c;所有人都能通过连接此路由器上网&#xff0c;无法解决遂上网搜索&#xff0c;无果&#xff0c;幸而偶然看到一个帖子说要把信号源网线接入路由器lan口&#xff0c;开启新世界。 一、wan-lan&#xff0c;lan-lan区…...

Python--内置模块和开发规范(下)

2. 开发规范 2.1 单文件应用 文件结构示例 # 文件注释 import os import jsonDB_PATH "data.json" # 常量放顶部def load_data():"""函数注释&#xff1a;加载数据"""if os.path.exists(DB_PATH):with open(DB_PATH, "r"…...

DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?

2025年2月28日&#xff0c;DeepSeek开源周迎来了第五天&#xff0c;也是本次活动的收官之日。自2月24日启动以来&#xff0c;DeepSeek团队以每天一个开源项目的节奏&#xff0c;陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天&#xff0c;他们发布了Fire-F…...

[密码学实战]Java实现SM2数字信封(结合SM4对称加密)生成与解析

一、代码运行结果 二、什么是数字信封 2.1 基本概念 数字信封(Digital Envelope) 是一种结合对称加密与非对称加密的混合加密技术,通过以下步骤实现高效安全的数据传输: 对称加密:使用SM4算法加密原始数据,处理速度快,适合大数据量。非对称加密:使用SM2公钥加密SM4密…...

redis序列化设置

redis序列化设置 redis序列化设置序列化对象里有org.joda.time.DateTime1&#xff09;、报错内容如下2&#xff09;、解决方案&#xff1a;分别自定义时间的序列化和反序列化&#xff0c;以对象形式关联到redisTemplate redis序列化设置 redis序列化设置&#xff0c;通过自定义…...