day01
1.JavaScript介绍
-
JavaScript是什么
JavaScript是一种运行在客户端(浏览器) 的变成语言,实现人机交互效果。
作用:
网页特效
表单验证
数据交互
服务端编程(nodejs)
组成:
ECMScript:规定了js基础语法核心知识。(如变量,分支语句,循环语句,对象等等)
Web APIs:
DOM:文档对象模型(比如对页面元素进行移动,大小,添加,删除等操作)
BOM:浏览器对象模型(比如页面弹窗,检测窗口宽度,存储数据到浏览器等等)
权威网站:MDN
-
JavaScript的书写位置
内联
代码写在标签内部
<body> <button onclick="alert('hello')"> 按钮 </button> </body>
内部
直接写在html文件里,用script标签包住
外部
代码卸载以.js结尾的文件里,通过script标签引入到html中<body> <scritp src="my.js"></scritp> </body>
注意事项:script标签中间无需写代码,否则会被忽略
-
JavaScript的注释
单行注释
符号://
作用://右边这一行的代码会被忽略
快捷键:Ctrl+/
<script> //单行注释 //一次只能注释一行 //可以重复注释 </script>
块注释
符号:/* */
作用:在/* 和 */之间的所有内容都会被忽略
快捷键:shift + alt + A
<script> /*这是多行注释语法*/ /* 更常见的多行注释是这种写法 可以任意换行 多少行都可以 */ </script>
-
JavaScript的结束符
代表结束语句
英文分号 ;
可写可不写
换行符会被识别成结束符,所以一个完整的语句,不要手动换行
因此在实际开发中有许多人主张书写JavaScript代码时省略结束符
但为了风格统一,要写结束符就每句都写,要么每句都不写
-
输入和输出语法
输出和输入也可理解为人和计算机的交互,用户通过键盘,鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。
输出语法
- 向body输出内容
document.write('要输出的内容');
如果输出的内容写的是标签,也会被解析成网页元素
- 页面弹出警告对话框
alert('要输出的内容');
- 控制台输出语法,程序员调试使用
console.log('控制台打印');
输入语法
- 显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字
prompt('请输入您的姓名');
-
字面量
在计算机科学中,字面量(literal)是在计算机中描述 事/物
比如:我们的工资是1000,此时1000就是数字字面量
2.变量
-
变量是什么
变量是计算机存储数据的“容器”
注意:变量不是数据本身,它们仅仅是一个用于存储数据的容器,可以理解为是一个个用来装东西的纸箱子。
-
变量的基本使用
-
声明变量
let 变量名; 如: let age;
声明变量有两部分构成:声明关键字,变量名
let即关键字,所谓关键字是系统提供的专门用来声明变量的词语,age即为变量名也称为标识符
-
变量赋值
定义了一个变量之后,就能够初始化它(赋值)。在变量名之后跟一个 “=” ,然后是数值。
let age = 18;
-
更新变量
变量赋值后,还可以简单地给它一个不同的值来更新它。
let age = 18; age = 19;
注意:let不允许多次声明一个变量。
-
-
变量的本质
内存:计算机中存储数据的地方,相当于一个空间
变量:是程序在内存中申请的一块用来存放数据的小空间
-
变量命名规则与规范
规则:必须遵守,不遵守报错
规范:建议,不遵守不会报错,但不符合业内通识
规则
- 不能用关键字
- 只能用下划线,字母,数字,$组成,且数字不能开头
- 字母严格区分大小写,如age和Age是不同的变量
规范
- 起名要有意义
- 遵循小驼峰命名法
- 第一个单词首字母小写,后面的每个单词首字母大写。如:userName
3.数据类型
-
数据类型
-
基本数据类型
js是弱数据类型,变量到底属于哪种类型,只有赋值之后才能确认
-
number 数字型
JavaScript中的正数,负数,小数等统一称为数字类型
-
string 字符串型
通过单引号,双引号或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别
注意事项:
- 无论单引号或双引号必须成对使用
- 单引号、双引号可以互相嵌套,但是不可以自己嵌套自己(外双内单,或外单内双)
- 必要时可以使用转义符 \,输出单引号或双引号。
-
模板字符串
-
作用:拼接字符串和变量
-
符号:
- ``
- 内容拼接时变量时,用${}包住变量
document.write(`大家好,我叫${name}, 今年${age}岁了`)
-
-
boolean 布尔型
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值 true 和 false,表示肯定用true,否定用false。
-
undefined 未定义型
未定义是比较特殊的类型,只有一个值undefined。
在只声明,不赋值的情况下,变量的默认值为undefined,一般很少【直接】为某个变量赋值为undefined。
工作中的使用场景
我们开发中经常声明一个变量,等待传送过来的数据。
如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传过来。
-
null 空类型
null表示空
null和undefined的区别
- undefined表示没有赋值
- null表示赋值了,但是内容为空
-
-
引用数据类型
- object 对象
- function 函数
- array 数组
-
-
检测数据类型
检测数据类型使用typeof
let age = 18; let name = 'jack'; let flag = false; let a; console.log(typeof age);//number console.log(typeof name);//string console.log(typeof flag);//boolean console.log(typeof a);//undefined
4.类型转换
-
隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
规则:
-
+号两边只要有一个是字符串,都会把另一个转换成字符串
-
除了+以外的算术运算,都会把数据转成数字类型
-
+号作为正号解析可以转换成number
console.log(10 + +'10');//20
-
-
显式转换
编写程序时过渡依靠系统内部的隐式转换是不严谨的,因为隐式转换的规则并不清晰,大多是靠经验总结的规律。
为了避免因隐式转换带来的问题,通常根据逻辑需要对数据进行显示转换。
转换为数字型
-
Number(数据)
- 转成数字类型
- 如果字符串内容有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字
- NaN也是number类型的数据,代表非数字
console.log(Number('10'));//10 console.log(Number('10abc'));//NaN
-
parseInt(数据)
- 只保留整数(没有四舍五入)
console.log(parseInt('10.111'));//10
-
parseFloat(数据)
- 可以保留小数
console.log(parseFloat('10.123'));//10.123
转成字符型
-
String()
console.log(String(10));//字符串类型的10
-
toString()
let age = 10; console.log(age.toString()); //括号里面转为进制 console.log(age.toString(2));//转成二进制 1010
-