JS基础点总结
运算符
// %取两数之间的余数,就是除不尽后得到的一个最终数
let a = 7;
let b = 4;
console.log(a % b);//3
// 加
let c = 2
let d = 3
let d1 = c + d
console.log("求和" + d1);//5
// 减
let e = 6
let f = 3
let f1 = e + f
console.log("求减" + f1);//3
// 乘
let g = 5
let g2 = 5
let g3 = g * g2
console.log("求乘" + g3);
// 除法/
let s = 8
let s1 = 4
let s2 = s / s1
console.log('除' + s2);//2
三元运算
①. 三元运算;成立执行第一个,不成立执行第二个
let a = 2021
let b = 2022
let c = 2023
a > b ? lert("a大") : alert("b大")
// 比较三个数值
let max = a > b ? a : b
let ss = max > c ? max : c
console.log(ss);
// && 和 || 的优先级 &&高
let result = 1 || 2 && 3 //如果&&高,返回1,如果||高返回3
console.log(result); //1
// 可以使用()来提升优先级
let result2 = (1 || 2) && 3 //这里先执行||,1||2 结果是1, 1&&3结果是3
console.log(result2);//3
代码块
①. JS中代码块,值具有分组作用,没有其他作用
代码块的内容,外部是完全可见的
②. 注意,这里代码块用var外面可以访问到,用let不行,var变量提升,let是有块级作用域的
③. let 则是有块级作用域的麻,let 如果没有自己定义局部的 let 那么就用全局定义的 let,局部的 let 能够覆盖掉全局的 let
let a = 111
{
console.log(a); //111
console.log("你好");
let b = 222
}
console.log('b=' + b);//b is not defined let块级作用域的问题,外部访问不到
自增
let n = 1
let n2 = 2
let n3 = n2 + ++n //这里计算线把n自增,就是先执行++n
console.log(n3);//4
比较
①. 如果是比较,计算机会把数据类型自动转换
②. 如果是=比较,则不仅比较数值,还要比较数据类型
let a = 1
let o = 6
let c = "6" //
console.log(o == c);//true
console.log(o === c);//false ===比较不会自动转换数据类型
或与非
①. && 逻辑与 || 逻辑或
②. && 表示两边都必须成立才继续执行,第一个成立直接返回第二个
let a = 1
let b = 3
if (a == 1 && b == 1) {
//
console.log("都为1");
} else (a == 1 || b == 1)
console.log("满足一个");
function star(num) {
return "*".repeat(num || 1) //第一个满足直接返回,后面的不再执行
}
console.log(star(6));
数据基本类型和引用类型
1. 基本数据类型
①. String number null undefined boolean
②. 引用数据类型 Object,Array,function,symbol
对象是保存到堆内存中,每创建一个新的对象,就会在堆内存中开辟一个新的空间
而变量(栈中)保存的是对象的地址,地址指向堆的内存中数据
③. JS中的变量是保存在内存中的
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在的,修改一个变量不会影响其他的变量
// 案例一,基本数据类型
var a = 123;
// 这里是把a数据拷贝了一份给b,后期改变不影响
var b = a;
a++
console.log(a);//124
console.log(b);//123
// 案例二;对象引用类型
var obj = new Object();
obj.name = "javascript"
// 这一步是把obj的地址交给了obj2,obj2修改数据obj也会修改
let obj2 = obj
obj2.name = 'java'
console.log('obj=' + obj.name); // java
console.log('ob2=' + obj2.name);// java
obj2 = null//这里是把obj2的引用地址设置为null,和obj不再有联系
console.log(obj.name);//java
console.log(obj2);//null
总结:基本数据类型保存的是数值,引用类型保存的是地址
函数
函数实参可以是任意数据类型,可以是对象,也可以是参数
// 案例一:函数
function fun() {
console.log("函数");
}
fun()//函数
//案例二:带参函数
function sum(a, b) {
console.log(a + b);
}
sum(6, 6)//12
// 案例三:奇数偶数
function Ou(a) {
return a % 2 == 0
}
let b = Ou(6)
console.log(b);//偶数
// 案例四:计算圆的面积
function Mj(r) {
return 3.14 * r * r
}
let result = Mj(10)
console.log(result);//结果是3.14*10*10 314
// 案例五:参数保存在对象里调用
function XYJ(s1) {
console.log('我是' + obj.name + '---' + obj.age + '周年了');