一、js介绍
- JavaScript是什么?
是一种通常运行在浏览器中(运行环境)的编程语言;
可以用来实现人机交互效果,提供逻辑思维能力。 - JavaScript的组成
ECMAScript规范:语法书写;
Web APIs(可操作的实体对象):DOM BOM
DOM(document object model):浏览器帮我们实体化为一个对象document;
BOM(browser object model):浏览器帮我实体化为了一个对象window; - js三种书写位置
1.内部
2.外部
3.外联
注意事项:书写的位置尽量写到文档末尾 </body> 前面;
外部 js 标签中间不要写代码,否则会被忽略 - js 注释
单行注释:快捷键ctrl+/ //
多行注释:/* 注释内容 */ - js结束符
英文状态下的;号(可写可不写,不写需要换行,推荐写) - js的输入与输出
输出方式:1.alert(要弹出的内容)
2.document.write("要输出的内容")
3.console控制台.log日志方法("要输出的内容")
输入方式:
prompt提示("提示文字")
二、变量
变量:计算机中用来存储数据的“容器”,简单理解是一个个的盒子。
变量的作用:用于存放数据。注意变量指的是容器,不是数据。
- 变量的使用:
// 1.变量的创建
// 语法:let关键字 变量名
let age
//2.变量的赋值
// 语法:变量名=数据
age = 18
console.log(age);
// 3.变量值的修改
// 语法:变量名=数据
age = 19
console.log(age)
// 连写:声明变量的同时,进行赋值
let age1 = 20
console.log(age1)
// 声明多个变量
// 语法:使用英文逗号,分割
let age2 = 21, name = "刘德华"
console.log(age2, name)
注意: let 不允许多次声明同一个变量。
字面量: 字面上的一个数量;所见即所得,的一个常量
变量的本质
内存:计算机中存储数据的地方,相当于一个大空间
变量:是程序在内存中申请的一块用来存放数据的小空间【内存中的一个地址空间】变量命名规则与规范
规则(必须遵守,不遵守会报错):
1.不能用关键字
关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等
2.只能用下划线、字母、数字、$组成,且数字不能开头
3.字母严格区分大小写,如 Age 和 age 是不同的变量
规范(建议,不遵守不会报错,但不符合业内通识):
1.起名要有意义
2.遵守小驼峰命名法(第一个单词首字母小写,后面每个单词首字母大写。例:userName)
三、数据类型
JS 数据类型整体分为两大类:基本数据类型:number 数字型、string 字符串型、boolean 布尔型、undefined 未定义型、null 空类型等;
引用数据类型:object 对象、function 函数、array 数组等
- 基本数据类型
1.数字类型number:
console.log("正整数", +123)
console.log("负整数", -123)
console.log("小数", 1.23)
2.string字符串(用单引号、双引号或者反引号包裹的内容):
// ''单引号
// ""双引号
// ``反引号
console.log('123')
console.log("321")
console.log(`德华`)
模板字符串——用于拼接字符串和变量
用反引号``包裹,内容拼接变量时,用 ${} 包住变量
<script>
//用户输入姓名和年龄;
let name = prompt('请输入您的姓名');
let age = prompt('请输入您的年龄');
//用反引号拼接``
console.log(`您好,我叫${name},今年${age}岁`)
</script>
3.布尔类型(boolean)
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。
4.未定义类型(undefined)
未定义是比较特殊的类型,只有一个值 undefined。
只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
工作中的使用场景:
我们开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。
5.null(空类型)
null 表示 值为 空
null 和 undefined 区别:undefined 表示没有赋值;null 表示赋值了,但是内容为空
null 开发中的使用场景:
官方解释:把 null 作为尚未创建的对象
大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null
- 检测数据类型
1.控制台输出语句:控制台语句经常用于测试结果来使用;数字型和布尔型颜色为蓝色,字符串和undefined颜色为灰色
2.通过 typeof 关键字检测数据类型
四、类型转换
JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。
坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。
通俗来说,就是把一种数据类型的变量转换成我们需要的数据类型。
- 隐式转换
隐式转化:系统内部自动的进行类型转化
// 1.加号(+)左右,只要有一个字符串,就把另外一个值转化为字符串
console.log("11" + 12);//1112
console.log(13 + '11');//1311
// 2.除了+号之外的算数运算符:会把数据转化为数字
console.log(13 * '11');//143
console.log(13 - '11');//2
// 3.+号可以作为正号解析
console.log(typeof + '11');//number
console.log(11 + +'11');//22
- 显式转换——自己写代码告诉系统该转成什么类型
编写程序时过度依靠系统内部的隐式转换是不严谨的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。
为了避免因隐式转换带来的问题,通常需要对数据进行显示转换。
1.转换为数字型
// 1.Number(数据)
console.log(Number("123"))//123
// 1.1当数据不能转化为数字的时候,会返回NaN
console.log(Number("a3e"))//NaN
// 1.2 NaN是一个数字类型
console.log(typeof Number("a3e"))//number
// 2.parseInt(数据)
// 作用:解析为 整数
console.log(parseInt("1.23"))//1
console.log(parseInt("-1.23"))//-1
//3. parseFloat(数据)
// 作用:可以保留小鼠,小数最后的是0会省略
console.log(parseFloat("1.27"))//1.27
console.log(parseFloat("1"))//1
console.log(parseFloat("1.10"))//1.1
ps: parseInt() parseFloat() 【parse解析的意思: 只要传入的数据是以数字开头的,就能解析成功,返回值为第一个数字直到碰到非数值为止; 比如 parseInt("123aa") ;返回 123】
2.字符串转换
// 1.String(数据)
console.log(String("123"))
console.log(String(123))
console.log(String(true))
console.log(String(undefined))
console.log(String(null))
// 2.变量.toString(进制);进制不写,默认为十进制
// 需要一个变量
// 数字.toString()会报错
// 123.toString();报错
let a = 123;
console.log(a.toString())
console.log(typeof a.toString())