JavaScrip 基础 第一篇
JavaScrip 基础 第一篇
JavaScript是一门动态语言 编程语言
浏览器本身不会执行直接JS代码,是通过内置JavaScript 引擎来执行代码 ,逐行解释为机器语言 进行执行我们的脚本文件
JavaSript
分为
-
ECMAScript
JavaScript语言 -
DOM
操作 页面文档对象模型 -
BOM
操作 浏览器对象模型
ECMAScript
是由ECMA
国际进行标准化的一门编程语言
在万维网应用广泛,被称为JavaScript
实际上后者是ECMAScript
实现和扩展,规定了变成语法和基础核心知识,所有浏览器遵守的JS规则操作
DOM
文档对象模型 是
W3C
组织推荐的处理可扩展标记语言的标准编程接口,通过DOM
对页面各元素进行操作,比如大小位置颜色
BOM
浏览器对象模型 提供独立于内容、可以与浏览器窗口进行互动的对象结构,通过
BOM
可以操作浏览器窗口,比如弹出框,控制浏览器跳转
JS初体验
JS
三种书写位置:行内、内嵌以及外部
行内一般书写在body
标签中
<input type="button" value="唐伯虎" onclick="alert('秋香姐')">
内嵌一般书写在head中
<script>
alert('时间煮雨')
</script>
外部一般使用link引用 一般是量大情况
<script src="./test.js"></script>
JS注释
单行注释
// 双反斜线单行注释 一般编辑软件注释的快捷键为ctrl+/ 不过看情况
多行注释
/*
多行
注释
*/
JavaScript输入输出句
弹出框
alert()
输入框
prompt()
控制台打印
console.log()
变量
变量就是类似一个装东西的盒子
用于存放数据的容器,通过变量名 获取数据 或是数据可以修改
本质:变量是程序在内存中申请一块用来存放数据的空间
使用变量两步:
- 先声明变量 然后在赋值
- 声明变量
var age;
// 其中var 是一个js关键字 用来声明一个变量使用的,使用该关键字后计算机自动为变量分配内存空间
// age 是定义的一个变量名,通常通过定义的变量名来访问内存分配的空间
- 赋值
age = 10;
更新变量
一个变量被重新赋值后, 它原有的值就会被覆盖,变量值将以最后一次赋的值为准
声明变量的特殊情况 :
只声明未赋值情况下 结果为undefined javascript的特殊值区分与null none等空值
不声明不赋值 会报错
变量声明,直接赋值也可以使用,但是不推荐不适用
建议声明变量使用
变量声明规范
字母数字下划线 特殊可以加入美元符号($)组成
严格区分大小写
不能以数字开头
不能是关键字保留字
变量名必须有意义
尽量遵守驼峰命名法
数据类型
数据类型简介
在计算机中 不同数据所需要不同的存储空间
JavaScript是弱类型语言
数据是无法确定属于哪种数据类型,当赋值的时候才能判断出来
例如:
var age;
age = 10
// 只有赋值才能判断是 数值类型
得出 js的变量数据类型只有在程序的运行过程中,根据等号右边的值得数据类型来进行判断的
运行完后,就可以确定
但是js是动态语言 变量的数据类型是可以变化的
当数据值赋值给对应变量是时候,就会产生新的情况
基本数据类型
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整形和浮点型 例如 21,0.21 | 0 |
Boolean | 布尔值类型,例如true ,false等价于 1和0 | false |
Srting | 字符串类型,例如 ‘张三’ 带上引号的一串字符 | “” |
Undefined | var a; 声明变量未赋值 | undefined |
Null | var a = null; 声明变量a 为空值 | null |
数字类型
二进制、八进制、十进制、十六进制
二进制开头:
0b
八进制开头:
0
十六进制开头
// 0~9 a~f
0x
最大最小
// 数字型最大值
console.log(Number.MAX_VALUE)
// 数字型最小值
console.log(Number.MIN_VALUE)
// 无穷大和无穷小
console.log(Number.MAX_VALUE * 2)
console.log(Number.MIN_VALUE * 2)
判断非数字 数字为false 非数字为true
isNaN
console.log(isNaN(13))
字符串类型
var str = "我是一个'高富帅'的程序猿"
// 需要注意单双引号区分
字符串转义字符
转义符 | 解释说明 |
---|---|
\n | 换行符, n 是 newline的意思 |
\ | 斜杠\ |
’ | ’ 单引号 |
" | " 双引号 |
\t | tab 缩进 |
\b | 空格, b是blank |
字符串长度
检测获取字符串长度
str.length
字符串拼接 + 号
console.log('沙漠' + '骆驼');
console.log('沙漠' + 18);
// 拼接字符串,结果都为字符串
拼接加强版
// 变字符串拼接
var age = 12;
console.log('今年我已经'+ age + '岁了')
交互编程
-
输入框
-
程序处理
-
输出框
var age = prompt('请输入你的年龄');
var str = '您今年已经'+ age + '岁';
alert(str);
布尔型
布尔类型有两个 一个真true一个假false
参与计算时 带入为 true = 1 false = 0 进行计算操作
Undefined
如果变量声明为赋值就为未定义 undefined,也可以自定赋值为undefined
undefined与数字相加为NAN,与字符串相加为 拼接
空值
空值与数字相加,为数字本身 ,与字符串相加为拼接
获取检测变量的数据类型
typeof
方法
var num = 30;
console.log(typeof num)
通过控制台颜色判断类型
字面量
字面量在源代码中一个固定值的表示法
数字字面量:8,9,10
字符串字面量:‘张三’,
数据类型转换
使用表单、prompt获取的数据默认字符为字符串,无法正常的获取想要的计算,需要转换数据类型进行操作
也就是将一种数据类型变量转换成另一种数据类型
通常实现三种方式
-
转换为字符串类型
-
转换为数字型
-
转换为布尔型
转换为字符串类型
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num = 1; num.toString() |
String()强制转换 | 转成字符串 | var num = 1; String(num) |
加号拼接成字符串 | 和字符串拼接都为字符串 | var num = 1; num + ‘张三’ |
其中第三种也叫隐式转换
转换为数字型
方式 | 说明 | 案例 |
---|---|---|
parselnt(string)函数 | 将字符串转为整数数值 | parselnt(‘78’) |
parseFloat(string)函数 | 将字符串转为浮点数数值 | parselnt(‘78.21’) |
Number()强制转换 | 将字符串转为数值数值 | Number(‘12’) |
js隐式转换(- * /) | 利用运算符隐士转换为数值型 | ‘12’ - 0 |
转换为布尔型
方式 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 其他类型转换为布尔值 | Boolean(‘true’); |
注意代表 空、否定的值 会被转换为false
例如 空字符串、0、NAN、null、undefined
其余值都会被转换为true
JS扩充:
标识符、关键字、保留字
标识符:注意发音zhi 第四声
读的时候有人做 shi的读音见仁见智 识 作识别含义
zhi 发音有标志的意思,表示变量被程序所识别
标识符 是指开发人员为变量、属性、函数、参数取的名字
标识符不能是关键字或保留字
关键字:是指
JS
本身已经使用了得字,不能再用他们充当变量名、方法名
break、else、new、var、case、finally、return、void、catch、for、switch、while、continue、function、this、with、default、if、throw、delete、in、try、do、instanceof、typeof
保留字: 实际上就是预留的关键字,意思就是现在还不是,将来可能是关键字
abstract、enum、int、short、boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private 、transient、debugger、implements、protected 、volatile、double、import、public
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构