js基础day01-05笔记(b站黑马)

131 阅读4分钟

JSDAY01

查东西用mdn 引入js的方法即书写位置: 外部(要注意写src连接) ,内部,内联三种方法

两种js注释方法 1.//:ctrl+/ 2./* */ :shift+alt+A

3个输出语句:1.document.write('xxx') 2.alert('xxx') 3.console.log(xxx控制台输出 给猿看的)

1个输入语句:prompt('xxx'),主意输入的类型是字符

变量 用户输入的数据如何保存下来? 变量是一个容器

语法 let变量名

变量命名规则:字母严格区分大小写 只能有下划线和$两种符号不能有短横线 数字不能开头

数组

语法 let 数组名 = ['元素1','元素2','元素3']

数据类型分类:基本数据类型和引用数据类型

基本数据类型:number数字型 string字符串型 boolean布尔型 undefined未定义型 null空类型

引用数据类型:object对象 function函数 array数组

利用**typeof检测数据类型 **如:console.log(typeof 123) 可以看到控制台输出number

模板字符串:用反引号document.write(大家好,我叫${变量1},今年${变量2}岁)

模板字符串里可以加标签和样式

image.png

数据类型的转换

隐式转换:1.-,*,/会把字符串‘10’转换为数学型 2.10+‘10’输出是1010 3.10+ +'10'输出是20,+'10'将字符串转换为数字型

显示转换:转换为数字型的:Number()只能放数字类型的字符,不能放abc这样的,否则返回的是NaN,还有ParseFloat,ParseInt等,这两个可以容忍字母在后面;转换为字符型的:String() 进制转换同string(),比如定义了变量let age 然后age.string(2)就是将age转换为二进制数

jsday02

一元运算符:前置++与后置++,一个是先加再使用,另一个是先使用再加,独立使用时没有差别

let i = 1
console.log(i++ + ++i + i)
结果是7

输入的是Π:Math.PI

比较运算符,判断: ==是只要值相等 不管数据类型是否相等,===是值与数据类型都要相等

逻辑运算符:与&& 或|| 非!

逻辑运算符里的短路 &&中左边为false就短路 ||中左边为true就短路(比如undefined||20)

有5个值是当false看的: false,数字0, ' ', undefined, null这五个 其余为真的

运算符优先顺序:小括号 一元运算符 算数运算符 关系运算符 相等运算符 逻辑运算符 赋值运算符 逗号运算符,一元运算符里逻辑非优先级高 逻辑与比逻辑或优先级高。

什么是表达式?什么是语句?它们的区别是什么? 表达式有结果 语句如if分支语句 for语句 表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)

三元运算符:条件?满足执行条件的代码:不满足条件的代码

switch的语法总是忘记所以记录一下

image.png

打断点方法:

image.png

while与continue结束循环继续下次循环 break

for循环语法 image.png

数组 操作数组的语法:增,删,改,查

增:arr.push(新增的内容,加到数组后面),arr.unshift(新增的内容,加到数组前面)这两个,删:arr.pop()删,arr.shift(),arr.splice(操作的下标,删除的个数)

let arr=['red','green','blue']
//删除最后一个元素,返回值是删除的元素
//arr.pop()
//看我删了一个,删的是最后一个blue
//console.log(arr.pop())
//看我删了一个,删的是第一个red
console.log(arr.shift())

函数参数的形参与实参 参数可以是一个数组

变量的作用域有全局变量,函数变量,块级变量({});(1)变量有一个坑,如果函数内部或者块级作用域内部,没有声明变量,直接使用,也当全局变量看,但是强烈不推荐,例如if(true){num = 10} console.log(num)也是ok的不会报错(2)还有一种特殊情况,函数内部形参可以做局部变量看 ; 作用域效果遵循就近原则

多个立即执行函数之间必须加分号结束,立即执行函数可以防止变量污染

对象 对象是一种数据类型 是无序的数据的集合 可以详细的描述某个事物

let 对象名={
属性:值,
属性:值,
属性:值}属性和方法都要写在对象里面

获得对象属性值的两种方法,不同场合用不同方法

image.png

对象中方法的访问方法:

image.png

对象的遍历 for in 循环语句,如果有一个对象obj

for(let k in obj){
console.log(k)//得到属性名
console.log(obj[k])//得到属性值
}

生成N-M之间的随机数

Math.floor(Math.random()*(M-N)+1)+N

不同数据类型的存储方式:栈(值存储)和堆(地址存储)

image.png

let obj1={
      age=18
}
let obj2=obj1
obj2.age=20
console.log(obj1)//结果是obj1.age也会变成20