欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > Javascript基础

Javascript基础

2025/3/20 6:45:48 来源:https://blog.csdn.net/weixin_38767017/article/details/146246003  浏览:    关键词:Javascript基础

目录

  • 1. 变量声明
  • 2. 基本数据类型
  • 3.复杂数据类型
  • 4.字符串方法
  • 5.对象方法
  • 6.时间方法
  • 7.条件(if)
  • 8.循环(for/while)
  • 9.遍历(for in/of)
  • 10.多选(Switch)
  • END


1. 变量声明

  • const:除非变量需要重新赋值(优先使用 )——const a=true;
  • let:需要修改值时使用{大括号内用}(其次使用)——let b="hello"
  • var:除非维护旧代码(避免使用 )——var c={ name:'XX',age:10 };
  • 备注:console.log(); //控制台输出日志
var a = true;  //旧的声明方法
console.log(a);function b(){let b="klxx";  //let 变量声明只在当前括号内有效console.log(b);
}
b();const c = 100;  //常数声明(不可重复赋值)

2. 基本数据类型

获取数据类型typeof(value)

  • string
  • boolean
  • number
  • null
  • undefined

数据类型转换

  • 转字符串:tosSring() //方法【S大写】
  • 转数值:parseint(value)parsefloat(value)
  • 强制转换:Boolean(value)number(value)
  • msg.payload = JSON.parse(msg.payload) 转换为JSON格式对象
let a = 1;
msg.payload = typeof(a);  //获取数据类型let b = true;
msg.payload = b.toString();  //转换成字符串【大写S】let c = "12.5.5";
msg.payload = parseInt(c);  //转换成数值
msg.payload = parseFloat(c);let d = "wo";
msg.payload = Boolean(d);  //强制转换(有值为true,空为false)

3.复杂数据类型

数据与对象的区别:

  • 数组是规定索引,自填元素;对象是自定义索引,值

数组(array) [元素1,元素2,…]

  • 数组声明:let/var a=[]; / msg.arr=[]; //逗号分割
  • 元素添加:msg.arr.push("wo") //添加在最后; / .unshift(“wo”) //添加到最前
  • 元素删除:msg.arr.shift() //方法:删除第一个元素;
  • 元素修改:msg.arr[1] = “wo”; //修改1索引的元素
  • 返回索引:msg.arr.indexOf(元素值) //返回值的索引 【大写O】
msg.arr1 = [];  //数组声明msg.arr1[3] = 88;   //修改元素
msg.arr1.push(33);  //最后添加msg.arr1.unshift(23);  //最前添加
msg.arr1.shift();  //删除第一个msg.payload = msg.arr1.indexOf(33);  //indexOf【O:大写】返回索引for(var i=1;i<msg.arr1.length;i++){//遍历数组 
}

对象(object) {属性名:属性值,…}

  • 声明对象:let obj1 = { "name":"小小","age":23}
  • 数据获取:msg.payload = obj1.name / obj1[“name”]
  • 对象添加:obj1.name = "小明" / obj1.gender = "男" //存在即更改,无则添加
  • 对象删除:1. delete obj1[age] //删除元素;2.obj1.age=null ; //只删除值
  • 特点:msg.obj1 = msg.obj2 //赋值对象2到对象1
let obj1 = {"name":"小明","age":23
}let obj2 = {"name":"小画","age":21
}obj1.age1 = 25;  //增加键值对delete obj1.age;  //删除键值对obj1 = obj2;  //对象赋值msg.payload = obj1 === obj2;  //相等返回truereturn msg;

函数(function)

  • 创建函数:function a(a,b,c) { a+b+c } //有函数名;var fn = function() { } //无函数名
  • 函数调用:a(1,2,3)
  • 形参:创建函数后定义的变量a,b,c(寄存器)
  • 实参:调用函数时定义的值1,2,3(具体值)
  • 返回值:return msg; //返回当前function函数块的msg对象,通过某一变量(Payload)来接收
  • break:跳出循环,执行一下跳
  • continue:跳出本次循环,执行下一循环
function a(a,b,c){  let s = a+b+c;msg.payload = s;  //通过Payload变量接收
}
a(1,2,3)
return msg;  //返回当前对象

4.字符串方法

常用的方法对字符串进行操作

  • 分割:split(分隔符) //指定分隔符,分割成字符数组
  • 截取:slice(开始索引,结束索引) //截取一段字符
  • 替换:replace(“原字符”,“替换字符”) //替换某个字符
  • 合并:concat(字符1,字符2) //合并字符
  • 提取索引:indexOf(“字符”)
  • 提取字符:charAt(索引)
let str1 = "中华人民共和国";
let str2 = "中华人民共和国,中国人民万岁";
let str3 = "";
// msg.payload = str1.charAt(3);  提取索引3的字符
// msg.payload = str1.indexOf("共");  提取字符共的索引
// msg.payload = str2.lastIndexOf("中");  提取最后字符中的索引
// msg.payload = str3.concat(str1,str2);  合并字符
// msg.payload = str2.split(",");  用,分割成2个字符串数组
// msg.payload = str2.slice(0,2);  从0截取2个字符
msg.payload = str1.replace("华人民共和","");  //替换字符
return msg;  //返回当前对象

5.对象方法

对象数据的常用方法

  • 获取所有键:Object.key(对象)
  • 获取所有值:Object.Value(对象)
  • 对象转换成数组:Object.entries(对象)
  • 是否含有特定键:obj1.hasOwnProperty(“特定键”)
  • 遍历对象
let obj = {"a":123,"b":12.3,"c":"wo","d":[1,"wo",3]
}// msg.payload = obj.hasOwnProperty("e");  是否含有特定键
// msg.payload = Object.keys(obj);  获取对象的所有键
// msg.payload = Object.values(obj);  获取对象的所有值
//msg.payload = Object.entries(obj);  对象转换数组function a(){this.a = "456",this.b = [1,333]
}
let b = new a();
a.prototype.e = 89;  //添加新的键e,值89(原型a()中无)
for(var i in b){console.log( i +"   " + b[i])  //控制台遍历对象
}
return msg;  //返回当前对象

6.时间方法

获取系统时间

let time1 = new Date();  //获取系统时间
let year = time1.getFullYear();  //年
let mouth = time1.getMonth()+1;  //月份为0-11【需+1】
let day = time1.getDay();  //日
let h = time1.getHours();  //时
let m = time1.getMinutes();  //分
let s = time1.getSeconds();  //秒
let ms = time1.getMilliseconds();  //毫秒
let time2 = year+"-"+mouth+"-"+day+" "+h+":"+m+":"+":"+s+":"+ms;
msg.payload = time2;
return msg;  //返回当前对象

在这里插入图片描述


7.条件(if)

语法

if(){  
}else if (){
}else{
}

运算符

  • !:非
  • ||:或
  • &&:与
  • ===:绝对等于

8.循环(for/while)

区别:

  • for(){}:先检查条件,再执行(遍历数组、固定次数循环)
  • while(){} :先检查条件,再执行(条件未知<如持续监听>)
  • do{} while():先执行,再检查条件(至少执行一次<如输入验证>)

语法:

for(){
continue;
}
-----
let XXX
while(){
}
-----
let XXX
do {
}while()

示例:

// for循环:明确次数  
for (let i = 0; i < 5; i++) {  console.log(i); // 输出0-4  
}  // while循环:条件未知  
let flag = true;  
while (flag) {  flag = Math.random() > 0.5; // 随机退出  
}  // do while循环:至少执行一次  
let input;  
do {  input = prompt("输入Y/N:");  
} while (input !== "Y" && input !== "N");  

9.遍历(for in/of)

区别:

  • for...in:遍历对象键名(属性),用于对象(可枚举)
  • for...of:遍历可迭代值(元素),用于数组/字符串等(可迭代亦可枚举)

语法:

for (let i in obj1){
}
for (let i of arr1\str1){  
}

示例:

let str1 = "wo men zui bang"
let arr1 = [1,2,3,5,5,5,9,8]
let abj1 = {"a":1,"b":"san","c":[5,6]}//=====for in====  用作遍历对象;不能遍历数组
for (let i in abj1){console.log(abj1[i])   //获取对象值、键
}//=====for of====  用作遍历数组、字符串;不能遍历对象
for (let i of arr1){console.log(i)
}let arr2 = []
for (let i of str1){arr2.push(i)   //字符串准换数组
}
msg.payload = arr2return msg;

在这里插入图片描述


10.多选(Switch)

区别:

  • if:多条件逻辑判断(范围、复杂条件)
  • switch:单变量多分支精确匹配(值明确,多分支枚举)对象和数据不建议用
  • switch 必须加 break(除非刻意穿透)
  • default 建议放末尾,提升可读性,放中间后边需加break

语法:

switch (变量、数字、字符串、表达式){case "s"://语句break;...default://语句
}

示例:

let str1 = msg.payload;
switch(str1){case "21Bap01" :console.log("确认21Bap01?")breakcase "21Bap02" :console.log("确认21Bap02?")breakdefault:console.log("重新选择!")
}return msg;

END

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词