js:基础

js是什么

JavaScript是一种运行在客户端的编程语言,实现人机交互的效果

js只要有个浏览器就能跑

js可以做网页特效、表单验证、数据交互、服务端编程

服务端编程是前端人拿他们特有的后端语言node.js来干后端干的事情

js怎么组成

JavaScript=ECMAScript(语言基础,规定语法规范;还有一种叫JCRIPT是微软的脚本语言)+Web ApIs

Web APIs=DOM(页面文档对象模型)+ BOM(浏览器对象模型)

DOM:操作文档,比如对页面元素进行移动、大小、添加删除等操作

BOM:操作浏览器,比如页面弹窗,检测窗口宽度、储存数据到浏览器等等

js写在哪里

css分为行内样式表、内部样式表、外部样式表

js像css一样分为行内js、内部js、外部js

内部

直接写在html文件里,用script标签包住

规范:写在哪里都行但是最好script标签写在</body>上面

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body>
<script>alert('你好,js~')</script>
</body></html>

像函数一样,先声明才能使用

外部

通过script在body里的调用

.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script src="truejs/my.js">//中间不能写js代码,会被忽略</script>
</body></html>

.js

alert('你好,js~我是外部的js文件')

语法

js的分号像go一样可写可不写,建议不写

js的代码执行规范是按照html文档流的顺序执行的,alert()和prompt()它们会跳过页面渲染先被执行

输出

向body输出内容,如果里面包含html标签,也会被解析为网页元素

document.write('我是div标签')
document.write('<h1>我是标题h1</h1>')</script>

还有我们刚刚写的alert也可以输出,做页面弹出警告对话框

console.log('我是控制台')

f12调试,点击console查看控制台,控制台是给程序调试人员使用的

输入

prompt('请输入你的名字')

字面量:在计算机科学里,字面量(literal)是在计算机中描述事/物的量,就是被写在代码中的固定的值

包括数字字面量、字符串字面量、数组字面量、对象字面量等等

变量

变量:储存数据的容器

变量的创建(声明、定义)

let 变量名(声明关键字 变量名(标识))
let age
age = 18
alert(age)

let num = 20
let uname='张三'
console.log(num,uname);

更新变量

let age = 18
age=19

var会重复声明,但是let不会

而且var会先使用再声明,声明过的变量可以重复声明,没有变量提升、全局变量、块级作用域

交换变量

let a = 10
let b = 20
let temp = a
a = b
b = temp
console.log(a,b);

不用的变量会自动销毁

变量名规则

不能有关键字、数字不能开头、符号只能包含下划线和$、js区分大小写

规范

遵守小驼峰:第一个单词首字母小写,后面每个单词首字母大写

数组

let arr=[]//let 变量 数组字面量

使用数组名+索引号索引

let arr=[11,22,33,44]
document.write(arr)
document.write(arr[2])

打印数组的长度

document.write(arr.length)

常量

常量:永远不改变的量

const G=9.8

常量只能初次声明的时候赋值,后面不能再次赋值,必须初始化

数据类型

js是动态类型的语言,不需要强制类型转换(弱数据类型,有隐式转换)

基本数据类型

number数字型、string字符串、boolean布尔型、undefined未定义型、null空

用单引号、双引号、反引号包裹的是string(字符串),单双引号在js里没有区别,推荐使用单引号

单引号里可以套双引号、反引号,相同符号不能随便嵌套;也可以用转移字符“\”解决嵌套问题

引用数据类型

object对象

算术运算符

+-*/%学过不说了

+除了四则运算,还可以进行字符串的拼接

let age=19
document.write('我今年'+age)

模板字符串,简化拼接字符串的步骤

let age=19
document.write(`我今年${age}岁了`)

可以实现一样的效果,外面用``来包含,里面用${}包含变量

Boolean和C语言的bool一样,true和flase是Boolean的自变量

未定义是比较特殊的类型,只有一个值underfined

let age
document.write(age)

遇到这种变量没赋值的情况变量默认值为undefined

工作中会有等待数据传过来的变量,这时候就可以判断变量是不是undefined来看数据是不是传过来了

null空类型,打印出来就是什么都没有,代表无,空,值未知

let obj=null
console.log(obj);

null和undefined的区别是:null是定义了值为空,undefined是未定义

null在开发中,通常被视作一个尚未创建的对象(就像C语言里面的指针被置为null一样)

检测数据类型

因为是弱数据类型,所以需要检测你的数据是什么类型

可以使用函数和运算符

typeof x//常用的写法,运算符
typeof(x)//函数形式
let num=10
console.log(typeof num)

number类型

prompt输入的类型默认是字符串类型,这时候如果对它进行+运算会进行字符串的拼接:

这时候要把数据进行类型转换

类型转换

隐式转换

某些运算符在被执行的时候,系统内部会自动将数据类型转换,称之为隐形转换

规则:

+号两边只要有一个是字符串,都会把另外一个转换为字符串

-*/都会自动把两边的数据转化为数字类型

除非+作为正号,如果是正好则将数据转换为数字类型

let num=+prompt('你输入的数据将是number类型')
document.write(typeof num)

这样输入的数据就必为number类型了

parseInt(数据)//只保留整数
parseFloat(数据)//可以保留小数

缺点是转换类型不明确,不好记

显示转换

转换为数字类型

let str='123'
Number(str)

要转换的类型首字母要大写

let str = '123'
console.log(typeof Number(str))

类型为number

前面说的在’123‘这样类型的字符串前面加正号也可以转为数字类型

除此之外还有

parseInt(数据)//只保留整数
parseFloat(数据)//可以保留小数

这两个会自动提取数据里的整数和小数部分,但是数字要在前面,如果数据为‘abc123px’就提取不出来数字了

练习一下:

let num1 = +prompt('请输入第一个数字')
let num2 = +prompt('请输入第二个数字')
let sum=num1+num2
alert(`答案是${sum}`)

练习将js和样式的效果

.js

let price = +prompt('输入商品价格:')
let num = +prompt('输入商品数量:')
let address = prompt('输入收货地址:')let sum = price * numdocument.write(`<table><tr><th>商品名称</th><th>商品价格</th><th>商品数量</th><th>总计</th><th>收货地址</th><tr><td>小米爪机</td><td>${price}</td><td>${num}</td><td>${sum}</td><td>${address}</td></tr></tr></table>`)

.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>h2 {text-align: center;}table {border-collapse: collapse;height: 80px;margin: 0 auto;text-align: center;}th {padding: 5px 30px;}table,th,td {border: 1px solid #000;}</style>
</head><body><h2>订单确认</h2><script src="truejs/my.js"></script>
</body></html>

根据你输入的内容不同改变价格、数量、总合计和收货地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/479273.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

yum install 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址&#xff0c;无法连接&#xff0c;需要替换为阿里云。 cd /etc/yum.repos.d/ 找到 CentOS-SCLo-scl.repo 和…

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DAC0832和ADC0832检测电压&#xff0c;0到8.5V&#xff0c;设计复位电路 LED管显示实际稳压值&#xff0c;初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

【一篇搞定配置】网络分析工具WireShark的安装与入门使用

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

Python基础学习-11函数参数

1、"值传递” 和“引用传递” 1&#xff09;不可变的参数通过“值传递”。比如整数、字符串等 2&#xff09;可变的参数通过“引用参数”。比如列表、字典。 3&#xff09;避免可变参数的修改 4&#xff09;内存模型简介 2、函数参数类型 1&#xff09; def func() #无参…

深入理解注意力机制(Attention Mechanism)

在深度学习中&#xff0c;“注意力机制&#xff08;Attention Mechanism&#xff09;”是近年来的一个重要突破。它最初被提出用于处理自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;但如今已经广泛应用于计算机视觉、强化学习和其他领域。注意力机制赋予模型一种“…

linux-FTP服务器配置

FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09; 一种用于在计算机网络中传输文件的标准协议。它允许用户通过客户端程序与远程服务器进行文件交换&#xff0c;支持文件的上传、下载、删除、重命名等操作。FTP服务常用于将网站文件上传到服务器&am…

蓝网科技临床浏览系统存在SQL注入漏洞

漏洞描述 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。在deleteStudy.php中的接口处存在SQL注入漏洞&#xff0c;未经身份验证的恶意攻击者利用 SQL 注入漏洞获取数据库中的…

QML学习 —— 32、自定义侧边滑动菜单(附源码)

效果 说明 侧滑菜单是应用中常见的从侧边划出菜单的效果。以滑动的方式从屏幕的左侧或右侧展开,为用户提供额外的导航选项或功能入口。侧边菜单的设计可以将应用的主要功能和内容以清晰的结构展示给用户,提升用户在使用应用时的便捷性和直观性。 代码 import QtQuick 2.12 i…

vue3项目部署在阿里云轻量应用服务器上

文章目录 概要整体部署流程技术细节小结 概要 vue3前端项目部署在阿里云轻量服务器 整体部署流程 首先有一个Vue3前端项目和阿里云应用服务器 确保环境准备 如果是新的服务器&#xff0c;在服务器内运行以下命令更新软件包 sudo apt update && sudo apt upgrade -y …

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;

Redis设计与实现 学习笔记 第二十章 Lua脚本

Redis从2.6版本引入对Lua脚本的支持&#xff0c;通过在服务器中嵌入Lua环境&#xff0c;Redis客户端可以使用Lua脚本&#xff0c;直接在服务器端原子地执行多个Redis命令。 其中EVAL命令可以直接对输入的脚本进行求值&#xff1a; 而使用EVALSHA命令则可以根据脚本的SHA1校验…

关于相机选型的一些参数说明

上一篇&#xff1a;关于相机的一些参数计算&#xff08;靶面、视野等&#xff09; 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS&#xff1a;视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…

ubuntu设置程序开机自启动

文章目录 1、概述2、图形界面设置3、设置为Systemd服务 1、概述 测试环境&#xff1a;ubuntu22.04 带图形界面 实现方式1&#xff1a;通过图形界面的【启动应用程序】设置开机自启动&#xff1b; 实现方式2&#xff1a;通过配置为服务实现开机自启动。 2、图形界面设置 优点&am…

4.STM32之通信接口《精讲》之IIC通信---软件实现IIC《深入浅出》面试必备!

接下正式&#xff0c;进入软件编写IIC时序了&#xff0c;并实现对MPU6050的控制&#xff0c;既然是软件实现&#xff0c;那么硬件方面&#xff0c;我仅需两根控制线即可&#xff0c;即&#xff1a;数据控制线SDA&#xff0c;时钟控制线SCL。&#xff08;人为软件层面定义的&…

使用mingw+CMake在Windows平台编译OpenCV

1. 安装mingw和cmake cmake的安装比较简单&#xff0c;百度一下完成相关操作即可&#xff0c;笔者安装的是3.24.3版本。 Mingw的安装也有很多相关文章&#xff0c;不过我使用的是安装QT时附带安装的mingw&#xff0c;其路径为D:\software\Qt\Tools\mingw1120_64。其中的bin文件…

2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年APMCM亚太地区大学生数学建模竞赛C题的成品论文。 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 10 一、问题重述 14 二&#xff0e;问题分析 15 2.1问题一 15 2.2问题二 15 2.3问题三…

win10中使用ffmpeg和MediaMTX 推流rtsp视频

在win10上测试下ffmpeg推流rtsp视频&#xff0c;需要同时用到流媒体服务器MediaMTX 。ffmpeg推流到流媒体服务器MediaMTX &#xff0c;其他客户端从流媒体服务器拉流。 步骤如下&#xff1a; 1 下载MediaMTX github: Release v1.9.3 bluenviron/mediamtx GitHub​​​​​…

海康面阵、线阵、读码器及3D相机接线说明

为帮助用户快速了解和配置海康系列设备的接线方式&#xff0c;本文将针对海康面阵相机、线阵相机、读码器和3D相机的主要接口及接线方法进行全面整理和说明。 一、海康面阵相机接线说明 海康面阵相机使用6-pin P7接口&#xff0c;其功能设计包括电源输入、光耦隔离信号输入输出…

vue3(十七)-基础入门之vue-nuxt路由

一、路由 Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。 要在页面之间使用路由&#xff0c;建议使用 < nuxt-link> 标签。 <template><nuxt-link to"/">首页</nuxt-link> </template>1、基础路由 pages 的目录结…