JavaScript简称js,是一种浏览器解释型语言,是可以嵌入在html文件中交给浏览器解释执行的。主要用来实现网页的动态效果,用户交互以及前后端的数据传输等。
JavaScript能做什么?
1.网页的动态效果
2.前后端的交互(数据提交,人机交互)
3.进阶(前端的高级框架:vue.js React.js Node.js)(VR/AR开发:Three.js)
注:html/css不是编程语言,JavaScript是一门正儿八经的编程语言
1.ECMA Script简称ES,是js的语法规则,目前最新版本ES13
2.ECMA是一个欧洲计算机制造商协会,主要做一些评估,开发和计算机标准
3.BOM(Browser object model):浏览器对象模型,主要是对浏览器进行操作(交互,弹窗,输入框)
4.DOM(Document object model):文档对象模型,负责对网页里的内容进行操作(网页里的所有内容都称为文档)
内部JavaScript直接写在html里面,用script标签包裹住
语法:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documenttitle>
<style>
*{
margin: 0;
padding: 0;
}
style>
head>
<body>
<script>
document.write('麦当')
script>
body>
html>
外部JavaScript代码写在以.js结尾的文件里面,通过script标签引入到html页面中
语法:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documenttitle>
<style>
*{
margin: 0;
padding: 0;
}
style>
head>
<body>
body>
<script src="./demo.js">script>
html>
注:1.如果用外部写法,再在script标签内写js的话是无效的
2.src不止能引入本地的文件,也可以通过cdn加速的方式,获取实时js代码(相当于引入网络文件)
3.引入js最好放在网页最后/body的最后
作用:主要写一些代码思路逻辑
单行注释://
多行注释:/*内容*/
快捷方式:ctrl+/
prompt:在进入网页时,弹出输入框,让用户输入内容,输入框里可以放提示文本
语法格式:
prompt()
prompt(‘提示内容’)
案例:prompt('请输入你的名字')
prompt输入用来赋值:
prompt得到的数据字符串类型(输入方法给变量赋值)
let name = prompt('请输入你的名字')//在弹出框中显示
alert('欢迎你'+name)
document.wtite(内容):在网页里写内容,能够识别标签,字符串(字符串,标签都要用引号包裹)需要用引号包裹,数字不用。
语法格式:
document.write(内容)
案例代码:
document.write(888)
document.write('多喝岩浆')
document.write('内容')
console.log(内容):控制台输出日志,在控制台输出一个信息(主要是用来调试js数据的)(不需要加标签,因为不是给网页看的)
语法格式:
console.log(内容)
案例代码:
console.log(888)
console.log('多喝岩浆')
alert:弹窗,在网页里显示一个弹窗
语法格式:
alert(内容)
案例代码:
alert('麦当')
alert(888)
1.什么是变量?
一个用来存储东西的容器,取个有意义的名字,方便后续使用
2.命名规范:
变量名可以由数字,字母,下划线,$组成,禁止以数字开头(中文不推荐)
变量名严格区分大小写
不要用关键字命名
见名知意
3.声明符:
let:es6新出的语法,作用和var类似,但是在作用域上let更严谨
4.变量的使用:
(1)声明变量
let 变量名 //声明一个空的变量,没有赋值
let 变量名=值 //声明一个变量并赋值
let name
let age=18
(2)声明多个变量
let 变量名=值,变量名=值
let sex='女',name='小川'
(3)输出变量
document.write(变量名)
console.log(变量名)
alert(变量名)
(4)输出多个变量
document.write(变量名,变量名)
console.log(变量名,变量名)
alert(变量名,变量名)
注:1.直接写 变量名=值,不写let,写法上是允许的,但是非常不推荐
2.变量使用let关键字声明,但是未赋值,变量初始值为undefined,不会报错
3.使用let关键字重复声明一个变量会报错
js中查看数据类型:typeof 变量名
console.log(typeof 变量名)
console.log(typeof teacher)
JavaScript不区分整数 浮点数等 统一都叫number --> 年龄/金钱/身高
let 变量名 = 数值
let age = 18
let height = 188
console.log(age,height)
console.log(typeof age)
通过单引号(''),(""),或者反引号(``)包裹的数据都叫字符串-->文字信息/地址/名字
let 变量名 = '字符'
let 变量名 = "字符"
let name='杨洋'
let food="螺蛳粉"
let hobby=`睡觉`
console.log(typeof name,name)
反引号主要是作为模板字符串使用 帮助我们更好的输出一些带有变量的数据
格式:`字符${变量名}字符`
let name = `墨离`,age = 18
console.log(`我叫${name}我今年${age}岁`)//这一行里面必须是用反引号包裹
布尔类型主要用于逻辑判断 只有两个值 true/false
let 变量名 = true/false
let on_line = true
let not_online = True //会报错 没有被定义
console.log(on_line,typeof on_line)
console.log(not_online,typeof not_online)
undefined即是类型也是值 指的就是未定义的意思 当你声明变量没有赋值时,
他的值就为undefined
let 变量名
let test
console .log (test,typeof test)
null和Python里的none类似 表示的是值为空 输出类型为对象(空对象)
let bf = null
console.log(bf,typeof bf)
\n 换行
\t 制表符tab键
\\ 正常输出一个斜杠
\' 正常输出一个引号
注意:js没有原始字符串 不能像Python那样在字符串前面加r取消转义
在开发学习中 经常会遇到需要把一个数据转换成其他类型使用 这个时候就要类型转换
1 + '1'
1 - '1'
隐式类型转换:
程序运行过程中自动执行 自动发生一种转换机制 主要体现在字符串和数值进行运算时
+号会优先识别为拼接 其他的就是为正常数值运算
强制类型转换:
手动把数据转换为指定的数据类型
Number(数据)--把数据转换为number类型
1.如果转换失败 结果为NaN
2.NaN也是number类型 表示的非数字 not a number
String(数据)--把数据转换为string类型
Boolean(数据)--把数据转换为Boolean类型 在转换时 有值为真无值为假 (0,-0,undefined,null)
运算符 == 带有特定的功能的符号
算术运算符:+ - * / ** // %
**取幂:3**3 = 27-->原理 3*3*3 3**4 3*3*3*3
% 取余:11%3 = 2-->原理 11-3 直到减不下去为止 还剩多少就是取余
逻辑运算符:
&&: 逻辑与and 当有多个条件时 都满足才为真
||: 逻辑与or 当有多个条件时 满足一个就为真
!: 逻辑与非not 反骨仔 什么都和你反着来
赋值运算符:
= += -= *= /=
a+=b --> a=a+b
关系运算符:
== < > >= <=
单目运算符:
++ -- 自增/减1
++在前,先自增再赋值;先+1 再运行
++在后,先赋值再自增;先运行 再+1
let i = 10
i++
++i
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documenttitle>
head>
<body>
<script>
// let name=prompt('请输入你的姓名')
// alert('你好'+name)
// console.log('你好麦当')
// console.log(888)
// document.write(888)
// let name='麦当',age=20
// document.write(name,age)
// let num=10,count=3
// console.log(num%count)
// console.log(num+count)
// console.log(`${num/count}`)
script>
body>
html>