目录
js常识
js什么?
是一种运行在客户端(浏览器)的编程语言,实现了人家交互效果。
可以做什么?
- 网页特效
- 表单验证
- 数据交互
- 服务端编程,例如:node.js
js的组成:
ECMAScript国际组织,规定了js期初语法核心知识,例如:变量、分支语句等
Web APIs:
DOM:操作文档,比如对页面元素进行移动、大小、添加删除等操作。
BOM:操作浏览器,比如页面弹窗,检测窗口宽度,存储数据到页面浏览器等。
权威网站:MDN(查看js官方文档)
js书写位置
内部js:
要定义放在</body>的上面。
原因如下:
外部js:
需引入语句:
<script src="外部js的路径" > 引入语句这里存在语句,也会无效 </script>
内联式js:
定义在标签中
总结:
js的注释
-
单行注释
-
块注释
js的结束符
同css为分号;
值得注意:js中结束符分号可以不写,默认把换行识别为结束符。
js的输入输出语法
什么是语法:是一种人和计算机之间中的约定和规范。
输出语句:
// 弹窗输出语法
alert("执行了外部js")
// 向body页面里面输出内容,也可以指定标签
document.write('我是煞笔!')
document.write('<h2>我是牛逼</2>')
// 控制台输出语法
console.log('我是控制台输出的内容!')
输入语句:
// 输入语句
prompt('你今年多大了?')
字面量
变量
啥是变量:简单来说就是一个装东西的盒子。
变量有啥用:用来存放数据。
变量的使用:
声明变量:let 变量名
变量赋值: =
变量初始化:let 变量名 = 数据;(直接在声明的时候赋值)
同时声明多个变量:
//声明变量,let就是让的意思,
let age = 20,wname = '伍绍恒',id = 13131//可以同时声明多个变量
document.write(age)
document.write(wname)
实现简单交互:弹窗让用户输入内容,再打印到页面中
//获取用户输入的内容
let age = prompt('您今年多大了呀?')
//打印到页码
document.write(age)
javascrip有垃圾回收机制
变量命名规范与规则
规则:必须遵守,不遵守报错
规范:建议,不遵守不报错,但不符合行业规范
let和var的区别
重点:以后声明变量统一使用let
//var的特性
sum = 20//先使用再声明,因为其后变量提升的特性
var sum
var sum = 99//可以重复声明
document.write(sum)//输出值为99
数组
声明变量:let 数组名 = [ ]
数组类型
两大类:
- 基本数据类型
- 引用数据类型
number数字类型:
string字符串类型:
//目的打印:'刘德华'
// console.log('我是'刘德华'')//报错,''和""都不能自己嵌套自己
console.log("我是'刘德华'");//成功,用到了外双内单
console.log('我是\'刘德华\'');//成功,用到了转义符\
注意:
字符串拼接:
//拼接
let age = 20
console.log('我今年年龄为:'+ age);//age会被转化为string
模板字符串(方便拼接,其可以换行):
//模板字符串,为了方便字符串拼接
let age = prompt('今年多大了?')
let wname = prompt('你叫?')
//()中的内容用反引号,可以进行换行,而不影响
document.write(`你好${wname},
你今年${age}了`)//注意这里为反引号
prompt用反引号括起来输入内容时,其换行,也会再弹窗的时候表现出来
效果:
布尔类型:
在控制台打印出显蓝色:true / false
未定义类型undefined:
当变量只声明而未赋值的时候,变量输出值为:undefined
使用场景:
undefined和null的对比:
特殊情况:
检测数据类型:
输入控制台颜色判断:
通过typeof关键字检测数据类型:
数据类型转化:
为什么要类型转化:
隐式转化:即由系统按照一定规则自动转化
显式转化:指定转换目的类型
转number:
转string:
两种方法:String() 和 变量.toString(执行输出的进制数,默认为10)
常见错误: