一 . 引入js
1.内部标签样式
<body>
<script>这是内部样式</script>
</body>
2.外部样式
<head>
<script src="./01.js"></script>
</head>
二 . 常用的客户端输出方法 (有四种)
1. 弹出一个输入框,让用户来输入内容。
window.prompt('请输入内容'); //页面中弹出一个对话框
2.在浏览器控制台输出信息
console.log('在控制台输出')
3.在当前窗口弹出一个警告对话框
window.alert('在当前窗口弹出一个警告对话框');
4.在网页的<body>标记中,显示你写的内容。
document.write('显示在页面当中');
三 . 基础语言
标识符:变量,函数,属性,函数参数的名字
1.单行注释 // ctrl+/
2.多行注释/* */
变量的命名规则
1.变量名可以包含字母、数字、下划线、美元符号$。
2.<span>变量名不能以数字开头,可以以字母或下划线开头。如:var _name;(正确) var 3abc;(语法错误)</span>
3.变量名不能是系统关键字,如:var、switch、try、case、else、while等。
4.JS中的变量名是区分大小写的。如:name和Name是两个变量
注意:JS中变量的名称一定要有意义,也就是常说的语义化。
如果变量名由多个单词构成的话 建议:
1.“驼峰式命名”:第一个单词全是小写,后面的每个单词首字母大写。如:getUserName(获取用户名);
2.“下划线式命名”:所有单词全小写,中间用下划线连接。如:var get_user_name;
3.匈牙利命名法(Hungarian):在变量名最前面添加相应小写字母来标识变量的类型,后面的单词首字母大写。
四 . 变量 (三种关键字:var let (const 常量))
概念:是储存信息的容器
语法格式: 变量类型 变量名称 = 存储的数据
var关键字 :声明的变量会自动提升到函数作用域顶部
//反复多次声明同一变量没问题(let下是不能这样操作)
var name ="张三" //定义字符串值为 张三 的 name 变量
var name ="张三"
var name ="张三"
console.log('name') //控制台打印
let关键字 :声明范围是块作用域
let name ="张三" //定义字符串值为 张三 的 name 变量
let name ="张三"
console.log('name') //输出会报错 不允许同一块作用域中出现重复声明
声明 let 有暂时性死区
//外部同名变量就不可用
let name ='李四';
function fn(){ // 函数function(先看看下面再说)
let name = '张三';
console.log(name) //这里出现 张三
}
fn() // 调用函数
const(常量)关键字 :声明常量不允许被改变
const name ="张三" //定义字符串值为 张三 的 name 变量
//声明const常量时必须赋值
//常量:不能改变值
const name ='张三' // 正确声明
const name; //错误声明
五 . 数据类型
1 . 基本数据类型:一个变量名只能存一个值
数值型-number、字符型-string、布尔型-Boolean、未定义类型-undefined、空型-null。
1.1 数值型-number :变量的值是数值型的
let num = 123 // 正确
let num = '张三' // 错误 这不是一个数值 NaN
1.2 字符型-string:用单引号或双引号引起来的一个字符串。
let str = '张三' //正确
1.3 布尔型-Boolean:布尔型又称逻辑型。只要两个值:true(真)、false(假)。用于条件判断。
Boolean("123") //true
Boolean(null) //false //null为空
1.4 未定义类型-undefined :声明了一个变量 但未给变量
let a //只给了声明 没有值 所以为undefined
1.5 空型-null。
let name = '' //为空
var a=100; // 有值 不为空
var a=null; //将一个null赋给一个变量,用于清除它的值。
数据类型 转换为true的值 转换为false的值
-------------------------------------------------------------------------
Boolean true false
String 非空字符串 ""(空字符串)
Number 非零数组(包括无穷值) 0,NaN
Object 任意对象 null
Undefined (不存在) undefined
2 . 引用(复杂 复合)数据类型:一个变量名能存多个值
数组-array、对象-object、函数-function。
2.1 数组-array
let arr = [1,2,3] // 中括号括起来的一组数字
2.2 对象-object
let obj = {} // 以花括号括起来的为对象 万物皆对象
2.3 函数-function:函数是一个工具可以把重复的代码进行封装多次使用
函数声明方式有两种
1.直接使用系统关键字
function fn(){
//逻辑代码
}
2.匿名函数的形式
let fn function (){
//逻辑代码
}
3. typeof():帮助查看数据,括号可以省略
typeof '123'; //String
typeof 123; //Number
//参数
Undefined //值未定义
Boolean //布尔值
String //字符串
Number //数值
Object //对象或null (null认为是一个空对象的引用)
Function //函数
Symbol //符号
//如果typeof未声明的变量,输出为undefined
let b;
typeof a; //undefined (没有声明)
typeof b; //undefined (b没有被赋值,自动为undefined)
4 . parseInt整数 和 parseFloat浮点型
4.1 parseInt 整数
//执行规则
第一个字符不是数值字符,加号,减号,立即返回NaN,从位置0开始监测
//字符串返回规则
包含数值:
parseInt("F")返回NAN
parseInt("1")返回1
parseInt("12abc")返回12
parseInt("001")返回1,忽略前面的0
parseInt("00.1")返回0,忽略前面的0,检查到.结束转换(自动取整)
parseInt("0xf")返回15,自动将十六进制转换为十进制
空字符串:返回NAN
上述以外的情况:返回NaN
//第二个参数用于指定底数(进制数)
parseInt("10",2) //2,按二进制解析
parseInt("10",8) //8,按八进制解析
parseInt("10",10) //10,按十进制解析
parseInt("10",16) //16,按十六进制解析
4.2 parseFloat浮点型
//字符串返回规则
包含数值:
parseFloat("F")返回NAN
parseFloat("1")返回1
parseFloat("12abc")返回12
parseFloat("001")返回1,忽略前面的0
parseFloat("00.1")返回0.1,忽略前面的0
parseFloat("00.1.1")返回0.1,忽略前面的0,只会识别第一个.第二个无效
parseFloat("3.125e7")返回31250000
空字符串:返回NAN
六 . 逻辑运算符
&& // 与 并且 两个条件都为真才是真
|| //或两个条件有一个成立,就是真(turn)
! // 取反值 真的变假 假的变真
七 . 比较运算符
= 代表赋值
== 代表比较 //类型不一样,值一样,结果为false
=== 绝对等于 //类型一样,值一样结果为true
八 . 算数运算符
1、算术运算符:+、—、*、/、%、++、——;
2、赋值运算符:=、+=、-=、*=、/=
3、比较运算符:>、<、>=、<=、==、!=、===
九 .数据类型转换 :把一个数据类型转换成其他数据类型
变量的数据类型转换分为两种
隐式转换:JS会根据运算符自动帮我们将数据类型转换成能够进行计算的类型。
强制转换:我们强制将数据类型转换成我们想要的类型
9.1 隐式数据类型转换
第一种情况:
1.字符串加数字,数字就会转成字符串。
2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。
3.乘,除,大于,小于跟减的转换也是一样。
例子:
console.log(10+'20') //1020
console.log(10-'20')//-10 number
console.log(10-'one') //NaN not a number 不是一个数字
console.log(10-'101a') //NaN
console.log(10*'20') //200 number
console.log('10'*'20') //200 number
console.log(20/'10') //2 number
console.log('20'/'10') //2 number
console.log('20'/'one') //NaN
第二种情况:
1.undefined等于null
2.字符串和数字比较时,字符串转数字
3.数字为布尔比较时,布尔转数字
4.字符串和布尔比较时,两者转数字
例子:
console.log(undefined==null) //true
console.log('0'==0) //true 字符串转数字
console.log(0==false) //true 布尔转数字
console.log('0'==false) //2个都转成数字
9.2 强制数据类型转换:
1、Boolean() 其他类型强制转成布尔型
2、String() 其他类型强制转成字符型
3、Number() 其他类型强制转成数值型
注意:名称或大小写必须一致
十 . JS- 分支语句
if 语句有三种使用方法:单分支、双分支、多分支
单分支
if(条件){
满足条件时执行的代码
}
// 括号内的条件为true时 执行大括号里面的代码
// 小括号里面的条件若不是boolean类型时 会发生隐式装换转换为boolean类型
双分支:
if(条件){
// 满足条件时执行的代码
} else {
// 不满足条件时执行的代码
}
多分支:
if(条件1){ //先判断条件1,若满足条件1就执行代码1,其他不执行
代码1
} else if(条件2) { //若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
代码2
}else if(条件3) { //若以上条件都不满足,执行else里的代码n
代码3
}else{ //可以写N个条件
代码n
}
十一 . 三目运算符(三元运算符)
比 if 双分支 更简单,有时候也叫做三元表达式 也是双分支语句
语法: 判断条件:要执行的代码一:代码二
条件较多的情况下不建议使用三目运算
含义: 如果条件为真(true),则执行代码一的结果
如果判断为假(false),则执行代码二的结果