JS语言基础
表达式
表达式:变量、数据、运算符
变量没有类型,但是数据又类型
分支、循环(流程控制)
- if-else,else,if ,switch,case。if括号里填(条件表达式|变量|关系运算符)
- for,while,do…while
- break(break 表示结束本次循环),continue(表示结束本次循环)
- 高级流程控制,使用代码块封装成函数。
- 数据处理:字符串、数组、对象的增、删、改、查
变量
简单类型
var var1 = "字符串"
var var2 = 123
var var3 = 123.123
var var3 = false
引用类型(对象)
var val4 = []
var val5 = {}
var val6 = undefined
var val7 = null
var val8;
console.log(val8) //val8打印出来是undefined
val8 = 100;
变量提升
1、js变量没有类型 var申明。
2、申明具有变量提升功能。浏览器一打开,首先会查找js中所有。var 关键字修饰的变量。并在栈区开辟空间。
3、如果一个变量 被申明但是未被赋值,undefined。
4、null 获取标签结构的时候,获取不到。
5、数据类型:
String、Number、Boolean、Array 、Object
Null undefined
js 中+法运算如果有字符串参与,会强转做拼接
console.log(1 + "2"); //12
console.log(true + "2"); //true2
console.log([] + "2"); //2
console.log([1,1] + "2"); //1,12
console.log({} + "2"); //[object Object]2
console.log(null + "2"); //null2
console.log(undefined + "2") ; //undefined2
js中数组是一种对象
var arr = [1,3,3,4];
// in 运算 key in obj
var obj = {
name : "张三",
age :12
}
console.log("name" in obj ); //true
var arr1 = [1];
console.log(1 in arr1); //true
关系运算符(== ===),会将所有的数据类型转成 Number
console.log(2 == '2') //true
console.log(1 == true)
console.log(1 <= false + 1)
//true 1 false 0 null : 0 undefinde : NaN
// 全等比较
console.log(2 === '2')
console.log(NaN + 1)
赋值运算表达式
var a = 10;
var b = a;
a = 100;
// String Number Boolean
//这时第一个仍然是10
// 引用类型赋值,不会创建新的数据,只会让不同的变量都可以访问同一个数据
// 数组,对象
var arr = [1,2,3,4]
var arr1 = arr;
arr1[0] = 100;
console.log(arr) //此时arr[100,2,3,4]
循环跳出设置一个标识名,循环走到标识名可以直接跳到循环外部标识名的位置。
xx:
for(var i = 0; i < 10; i++){
for(var j = 0; j < 8; j++){
console.log("j" + j)
for(var k = 0; k < 5;k++){
console.log("k" + k);
break xx;
}
}
}
函数定义
function fn(){}
var fn = function(){}
var fn = ()=>{}
var obj = {
name : "ddd",
say : function(){},
say(){
alert("张三")
}
}
obj.say();
console.log( "hello javaScript".indexOf('javaScript'))//字符串调用indexOf()可返回某个指定的字符串值在字符串中首次出现的位置,区分大小写。
//数组调用 indexOf() 方法可返回数组中某个指定的元素位置
解构赋值
var obj = {
a : 123,
b :"哈哈",
aa : {
aa : "dddd"
}
}
var name = "哈哈"
var age = 12
var obj1 = {
name,
age
}
console.log(obj1)
var { a,b } = obj;
var [{},{name : name}] = [{name : "张三"},{ name : "里斯" }]
console.log(name);