logo网站设计佛山小程序开发

张小明 2025/12/26 1:43:44
logo网站设计,佛山小程序开发,济南网站制作工具,网站界面设计中的布局设计要注意什么的结合JavaScript学习笔记JS简介书写语法一、基础语法规则#xff08;必遵守#xff09;二、变量声明数据类型运算符循环控制语句一、条件语句二、循环语句数组操作1. 新增元素#xff08;末尾 / 开头 / 指定位置#xff09;2. 删除元素#xff08;末尾 / 开头 / 指定位置#…JavaScript学习笔记JS简介书写语法一、基础语法规则必遵守二、变量声明数据类型运算符循环控制语句一、条件语句二、循环语句数组操作1. 新增元素末尾 / 开头 / 指定位置2. 删除元素末尾 / 开头 / 指定位置3. 修改元素直接赋值 / 批量修改4. 查找元素索引 / 值函数一、函数的核心概念二、函数的声明方式三、函数参数处理四、函数的返回值对象操作一、对象的基础概念二、对象的创建方式三、对象属性的增删改查四、对象的遍历总结JS简介JavaScript简称 JS是一种轻量级、解释型或即时编译的编程语言主要用于网页开发实现动态交互效果。作为 Web 三大核心技术之一HTML、CSS、JavaScript它可直接嵌入 HTML 页面由浏览器执行。书写语法一、基础语法规则必遵守大小写敏感JS 严格区分大小写let num 1和let Num 1是两个不同变量。语句结束符分号 ; 是语句结束符建议显式添加避免自动分号插入 ASI 的坑换行也可作为语句分隔但易出错如 return 后换行。注释单行注释// 注释内容多行注释/* 多行注释 换行也可以 */空白符空格、制表符、换行符等空白符会被忽略合理使用可提升可读性标识符命名规则标识符变量 / 函数 / 对象属性名等需遵守首字符字母a-z/A-Z、下划线_、美元符$后续字符可加数字不能是 JS 关键字 / 保留字如let、if、function、class等。letuserName张三;// 小驼峰变量/函数let_age20;// 下划线开头let$price99;// 美元符开头// let 123num 1; // 错误数字开头// let if 5; // 错误关键字二、变量声明JS 有 3 种声明方式ES6 新增let/const替代老旧的var声明方式作用域提升特性重复声明重新赋值var函数级 / 全局变量提升初始化 undefined允许允许let块级{}暂时性死区无提升禁止允许const块级{}暂时性死区无提升禁止禁止// var不推荐vara1;vara2;// 允许重复声明// let推荐可变变量letb10;b20;// 允许重新赋值// let b 30; // 错误重复声明// const推荐不可变常量声明时必须赋值constPI3.14159;// PI 3.14; // 错误禁止重新赋值constobj{name:李四};obj.name王五;// 允许修改对象属性const仅保证引用不变数据类型基本类型值类型字符串String“abc”、‘123’、模板字符串 支持换行 / 插值数字Number123、3.14、NaN、Infinity布尔Booleantrue、false空Nullnull表示空值未定义Undefinedundefined声明未赋值引用类型对象Object{ key: value }数组Array[1, 2, 3]函数Functionfunction() {}正则RegExp/^abc$/日期Datenew Date()。// 字符串letstr1hello;letstr2name:${userName}, age:${_age};// 插值// 数字letnum1100;letnum20.10.2;// 0.30000000000000004浮点精度问题// 数组letarr[1,2,true,{a:1}];console.log(arr[0]);// 1// 对象letuser{name:张三,age:20,sayHi:function(){// 对象方法console.log(Hi);}};user.sayHi();// 调用方法运算符算术运算符、-、*、/、%取模。比较运算符 (宽松相等)、 严格相等、、。逻辑运算符与、||或、!非。三元运算符条件 ? 表达式1 : 表达式255;// 55字符串拼接55;// false类型不同truefalse// false//三元算符letscore85;letresultscore60?及格:不及格;console.log(result);// 及格循环控制语句一、条件语句if-elseif(score90){console.log(优秀);}elseif(score70){console.log(良好);}else{console.log(加油);}switchletday1;switch(day){case1:console.log(周一);break;// 必须break否则穿透case2:console.log(周二);break;default:console.log(其他);}二、循环语句forfor(leti0;i5;i){console.log(i);// 0-4}whileletj0;while(j5){console.log(j);j;}for…in遍历对象属性 / 数组索引letobj{a:1,b:2};for(letkeyinobj){console.log(key,obj[key]);// a 1, b 2}for…of遍历可迭代对象值如数组 / 字符串letarr[1,2,3];for(letvalofarr){console.log(val);// 1,2,3}数组操作1. 新增元素末尾 / 开头 / 指定位置方法作用示例返回值push()末尾添加 1 元素arr.push(4, 5)新数组长度unshift()开头添加 1 元素arr.unshift(0)新数组长度splice()指定位置插入元素arr.splice(2, 0, a)空数组无删除letarr[1,2,3];// 末尾新增arr.push(4);// arr → [1,2,3,4]// 开头新增arr.unshift(0);// arr → [0,1,2,3,4]// 索引2的位置插入a参数起始索引删除数量插入元素arr.splice(2,0,a);// arr → [0,1,a,2,3,4]2. 删除元素末尾 / 开头 / 指定位置方法作用示例返回值pop()删除末尾元素arr.pop()被删除的元素shift()删除开头元素arr.shift()被删除的元素splice()指定位置删除元素arr.splice(2, 1)被删除元素组成的数组slice()截取部分元素不修改原数组arr.slice(1, 3)截取的新数组letarr[0,1,a,2,3,4];// 删除末尾letlastarr.pop();// last4arr → [0,1,a,2,3]// 删除开头letfirstarr.shift();// first0arr → [1,a,2,3]// 删除索引2的1个元素letdelarr.splice(2,1);// del[2]arr → [1,a,3]// 截取索引1到3左闭右开letnewArrarr.slice(1,3);// newArr[a,3]原arr不变3. 修改元素直接赋值 / 批量修改直接通过索引赋值arr[索引] 新值fill()批量填充 / 修改元素修改原数组。letarr[1,2,3];// 单个修改arr[1]b;// arr → [1,b,3]// 批量填充参数填充值起始索引结束索引arr.fill(0,1,3);// arr → [1,0,0]4. 查找元素索引 / 值方法作用示例返回值indexOf()查找值的第一个索引arr.indexOf(2)索引 /-1lastIndexOf()查找值的最后一个索引arr.lastIndexOf(2)索引 /-1find()查找满足条件的第一个元素arr.find(item item 3)元素 /undefinedfindIndex()查找满足条件的第一个索引arr.findIndex(item item 3)索引 /-1includes()判断是否包含某个值arr.includes(2)true/falseletarr[1,2,3,2,4];// 查找值的索引console.log(arr.indexOf(2));// 1console.log(arr.lastIndexOf(2));// 3// 条件查找元素console.log(arr.find(itemitem3));// 4// 条件查找索引console.log(arr.findIndex(itemitem3));// 4// 判断是否包含console.log(arr.includes(5));// false函数一、函数的核心概念函数本质是【可调用的对象】具有以下特性可接收参数、执行逻辑、返回值可赋值给变量、作为参数传递、作为返回值一等公民有自己的作用域隔离内部变量。二、函数的声明方式JS 有 4 种主流函数声明方式适用场景不同声明方式语法示例提升特性适用场景函数声明function add(a, b) { return a b; }函数提升可先调用后声明全局 / 函数内通用函数函数表达式const add function(a, b) { return a b; };无提升先声明后调用赋值给变量、作为回调箭头函数ES6const add (a, b) a b;无提升简洁回调、无 this 绑定场景构造函数极少用const add new Function(a, b, return a b);无提升动态生成函数性能差不推荐示例不同声明方式的调用// 1. 函数声明提升console.log(sum(1,2));// 3先调用后声明functionsum(a,b){returnab;}// 2. 函数表达式无提升// console.log(sub(5, 3)); // 报错sub is not a functionconstsubfunction(a,b){returna-b;};console.log(sub(5,3));// 2// 3. 箭头函数constmul(a,b)a*b;// 单行返回可省略{}和returnconstdiv(a,b){// 多行需加{}和returnif(b0)returnNaN;returna/b;};console.log(mul(2,4));// 8console.log(div(8,2));// 4三、函数参数处理JS 函数参数灵活支持默认参数、剩余参数、解构参数、参数传递方式等特性默认参数ES6声明时指定参数默认值调用时未传参则使用默认值functiongreet(name访客,age18){console.log(你好${name}年龄${age});}greet();// 你好访客年龄18greet(张三);// 你好张三年龄18greet(李四,20);// 你好李四年龄20剩余参数…restES6接收【多余的参数】为数组替代 arguments类数组更灵活// 求和任意个数的参数functionsum(...nums){returnnums.reduce((total,num)totalnum,0);}console.log(sum(1,2));// 3console.log(sum(1,2,3,4));// 10// 剩余参数需放在参数列表最后functionfn(a,b,...rest){console.log(a,b,rest);// 1 2 [3,4,5]}fn(1,2,3,4,5);解构参数ES6直接解构对象 / 数组作为参数简化参数提取// 解构对象参数functionprintUser({name,age,gender男}){console.log(姓名${name}年龄${age}性别${gender});}printUser({name:张三,age:20});// 姓名张三年龄20性别男// 解构数组参数functionprintArr([a,b,c]){console.log(a,b,c);// 1 2 3}printArr([1,2,3]);参数传递方式基本类型值传递传递值的副本函数内修改不影响外部引用类型引用传递传递内存地址函数内修改会影响外部// 基本类型letnum10;functionchangeNum(n){n20;}changeNum(num);console.log(num);// 10无变化// 引用类型letobj{name:张三};functionchangeObj(o){o.name李四;}changeObj(obj);console.log(obj.name);// 李四被修改arguments 对象类数组非严格模式下函数内可通过 arguments 获取所有传入的参数类数组无数组方法functionfn(){console.log(arguments[0]);// 1console.log(arguments.length);// 3// 转为数组[...arguments] 或 Array.from(arguments)}fn(1,2,3);注意箭头函数无arguments对象优先用剩余参数替代。四、函数的返回值无 return 语句默认返回 undefinedreturn 后无值返回 undefinedreturn 可返回任意类型基本类型、对象、函数functionfn1(){}console.log(fn1());// undefinedfunctionfn2(){return;// 等同于 return undefined}console.log(fn2());// undefined// 返回函数高阶函数functioncreateAdd(n){return(x)xn;}constadd5createAdd(5);console.log(add5(3));// 8对象操作一、对象的基础概念对象的「键」属性名字符串 / Symbol 类型数字会自动转为字符串对象的「值」属性值任意类型基本类型、对象、函数函数类型的属性称为「方法」。二、对象的创建方式创建方式语法示例适用场景对象字面量推荐const obj { name: 张三, age: 20 };简单对象直接声明构造函数const obj new Object({ name: 张三 });动态创建极少用object.create()const obj Object.create(prototypeObj);基于原型创建对象类ES6class User { constructor(name) { this.name name; } } const obj new User(张三);复杂对象 / 面向对象编程// 1. 对象字面量最常用constuser{name:张三,age:20,sayHi(){// 方法简写替代 sayHi: function() {}console.log(你好我是${this.name});}};user.sayHi();// 你好我是张三// 2. Object.create指定原型constproto{gender:男};constuser2Object.create(proto);user2.name李四;console.log(user2.gender);// 男继承原型属性// 3. 类创建ES6classUser{constructor(name,age){this.namename;this.ageage;}// 类方法getInfo(){return${this.name}${this.age}岁;}}constuser3newUser(王五,25);console.log(user3.getInfo());// 王五25岁三、对象属性的增删改查访问属性两种方式点语法obj.key键为合法标识符推荐方括号语法obj[key]键含特殊字符 / 变量必用。constobj{user-name:张三,// 含特殊字符的键age:20};// 点语法console.log(obj.age);// 20// 方括号语法特殊字符键console.log(obj[user-name]);// 张三// 变量作为键constkeyage;console.log(obj[key]);// 20添加 / 修改属性直接赋值obj.key value存在则修改不存在则添加Object.defineProperty ()精细配置属性可枚举、可修改、可删除。constobj{name:张三};// 添加属性obj.age20;obj[gender]男;console.log(obj);// { name: 张三, age: 20, gender: 男 }// 修改属性obj.name李四;console.log(obj.name);// 李四// 精细配置属性不可修改、不可枚举Object.defineProperty(obj,id,{value:1001,writable:false,// 不可修改enumerable:false,// 不可枚举遍历不到configurable:false// 不可删除/重新配置});obj.id1002;// 无效果严格模式报错console.log(obj.id);// 1001删除属性delete obj.key删除对象自身属性原型属性无法删除返回值成功删除 / 属性不存在返回 true不可配置属性返回 false严格模式报错。constobj{name:张三,age:20};deleteobj.age;console.log(obj);// { name: 张三 }// 不可配置属性无法删除Object.defineProperty(obj,id,{value:1,configurable:false});console.log(deleteobj.id);// false检查属性是否存在方法作用示例in 运算符检查自身 原型属性age in objhasOwnProperty()仅检查自身属性推荐obj.hasOwnProperty(age)obj.key ! undefined检查属性值是否为 undefined不严谨属性值可能为 undefinedobj.age ! undefinedconstproto{gender:男};constobjObject.create(proto);obj.name张三;console.log(nameinobj);// true自身属性console.log(genderinobj);// true原型属性console.log(obj.hasOwnProperty(name));// trueconsole.log(obj.hasOwnProperty(gender));// false四、对象的遍历for…in 循环遍历可枚举属性含原型constobj{name:张三,age:20};// 遍历自身可枚举属性过滤原型for(letkeyinobj){if(obj.hasOwnProperty(key)){console.log(key,obj[key]);// name 张三, age 20}}Object.keys() / Object.values() / Object.entries()Object.keys(obj)返回自身可枚举属性名数组Object.values(obj)返回自身可枚举属性值数组Object.entries(obj)返回自身可枚举属性的 [key, value] 数组可解构遍历。constobj{name:张三,age:20};// 遍历键console.log(Object.keys(obj));// [name, age]// 遍历值console.log(Object.values(obj));// [张三, 20]// 遍历键值对Object.entries(obj).forEach(([key,value]){console.log(key,value);// name 张三, age 20});Object.getOwnPropertyNames()返回自身所有属性名含不可枚举不含 Symbolconstobj{};Object.defineProperty(obj,id,{value:1,enumerable:false});console.log(Object.keys(obj));// []不可枚举console.log(Object.getOwnPropertyNames(obj));// [id]Reflect.ownKeys()返回自身所有属性名含不可枚举、SymbolconstsSymbol(id);constobj{[s]:1001,name:张三};Object.defineProperty(obj,age,{value:20,enumerable:false});console.log(Reflect.ownKeys(obj));// [ name, age, Symbol(id) ]总结基于JS的HTML会有更加流畅、更加实用、更加美观等效果注意区分JS与CSS和HTML的语法区别。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

青岛做外贸网站的公司一个人可以完成网站建设吗

MediaElch终极指南:免费高效的Kodi媒体库整理解决方案 【免费下载链接】MediaElch Media Manager for Kodi 项目地址: https://gitcode.com/gh_mirrors/me/MediaElch MediaElch是一款专为Kodi设计的强大媒体管理工具,能够帮助用户轻松整理电影、电…

张小明 2025/12/22 15:38:05 网站建设

六安市 网站集约化建设网络培训中心

OSHI项目代码质量保障终极指南:构建坚如磐石的跨平台监控系统 【免费下载链接】oshi Native Operating System and Hardware Information 项目地址: https://gitcode.com/gh_mirrors/os/oshi 在现代软件开发中,代码质量保障已成为确保项目长期稳定…

张小明 2025/12/22 15:37:04 网站建设

石家庄网站建设维护成都游戏软件开发公司有哪些

1.界面设计我们通过选用基本的控件来设计出下面的ui界面:当然我们的效果还要有选项中的图形显示,如下图所示:这里的图标我们可以通过阿里巴巴图标库获取,然后将其添加到我们的资源文件中即可,因为对于软件图标只能使用…

张小明 2025/12/23 15:44:53 网站建设

ps做特效哪个网站好佛山网上办事大厅官网

OpenBoard跨平台交互式白板:从入门到精通的完整指南 【免费下载链接】openboard 项目地址: https://gitcode.com/gh_mirrors/op/openboard 在移动设备日益普及的今天,如何选择一款既高效又易用的虚拟键盘成为许多用户的困扰。OpenBoard作为一款优…

张小明 2025/12/23 15:44:52 网站建设

做淘客网站 知乎广西建设厅网站是什么

在软件测试领域,职业演讲与技术分享不仅是展示专业能力的重要途径,还能促进团队知识共享和个人职业成长。作为测试工程师,我们常常需要向同事、管理层或行业同仁分享测试策略、自动化框架经验或缺陷管理实践。然而,许多测试从业者…

张小明 2025/12/23 15:44:49 网站建设

做凸透镜成像的网站中山免费建站

第一章:Open-AutoGLM到底值不值得信赖?在开源大模型迅速发展的背景下,Open-AutoGLM作为一款聚焦于自动化推理与任务分解的生成式语言模型,逐渐进入开发者视野。其宣称能够通过多步思维链(Chain-of-Thought)…

张小明 2025/12/23 15:44:47 网站建设