【前端基础--6】

对象 object

        // 定义一个obj来接收对象let obj = {name: '咪咪',type: '布偶猫',like: ['小鱼干', '猫条']}console.log(obj);// 取到obj里面name属性的值console.log(obj.name);// 使用大括号取值    括号内若不带引号,优先识别为变量console.log(obj['type']);// 通过等号进行赋值(修改)obj.name = '乖乖';console.log(obj);// 新增obj.age = 2;console.log(obj);// 使用delete来删除对象中的属性delete obj.like;console.log(obj);

添加循环  for ...in 

            let obj1 = {name: 'XX',age: 20,sex: '女'};var text = '';for (let key in obj1) {text = text + obj1[key];console.log(text);}let arr = ['一花','二乃','三玖']// item:循环这个数组里面每一项的下标for(let item in arr){console.log('当前下标为:'+item,arr[item]);}

字符串方法

        let text='abc';// 转大写字母console.log(text.toUpperCase());let text1='ABC';// 转小写字母console.log(text1.toLowerCase());let str='很高兴遇见你!';// 返回下标为3的字符console.log(str.charAt(3));   //遇console.log(str[4]);    //见// 返回unicode编码console.log(str.charCodeAt(5));   //20320// 返回字符串的下标位置// 可以有两个参数,第一个是要查的字符串,第二个表示从哪里开始查console.log(str.indexOf('高'));   //1// 截取字符串 第一个参数表示从哪里开始,第二个是结束位置(左开右闭区间)console.log(str.substring(0,3));   //很高兴// 简便写法 第一个参数表示从哪里开始,第二个表示截取长度console.log(str.substr(3,3));     //遇见你let str1='一花,二乃和三玖';// 替换 replace 第一个参数是要被替换的内容 第二个是替换的内容console.log(str1.replace('一花','四叶'));// split 使用分隔符let arr = str1.split();console.log(arr);   //['一花,二乃和三玖']  打印字符数组let arr1 = str1.split(',');console.log(arr1);  //['一花', '二乃和三玖']  以逗号分隔开分成两个字符串数组let arr2 = str1.split('');console.log(arr2);  //['一', '花', ',', '二', '乃', '和', '三', '玖'] 拆分每一个字符串console.log(str1.split('一花'));  //['', ',二乃和三玖']let str2 = 'abcdefg';// 返回一个数组,里面存放对应查找的内容console.log(str2.match('c'));  //['c', index: 2, input: 'abcdefg', groups: undefined]

运算符

        // 加法运算let x = 1 + 1;console.log(x);   //2// 减法运算let y = x - 1;console.log(y);   //1// 乘法运算let a = 3 * 4;console.log(a);   //12// 除法运算let b = 4 / 2;console.log(b);   //2// 取余数let num = 10 % 8;console.log(num);   //2

特殊运算符

        // 特殊运算符 ++(自身加一) --(自身减一)let num1 = 4;console.log(++num1);   //5console.log(num1++);   //5console.log(num1);   //6let num2 = 5;console.log(num2-- + num1);   //11   (5+6)console.log(--num2);   //3// 由此可见,后置++(--),先参与运算,后加(减)1

赋值运算符

        let c = 1;console.log(c += 1);   //2  同:c=c+1let d = 3;console.log(d -= 1);   //2  同:d=d-1console.log(d *= 3);   //6  同:d=d*3console.log(d /= 2);   //3  同:d=d/2console.log(d %= 2);   //1  同:d=d%2

比较运算符

通过比较返回布尔值,条件成立时返回true,不成立时返回false。

        // 大于> 小于< 大于等于>= 小于等于<= 不等于!= 等于== 全等于===let num3 = 5 != 4;console.log(num3);   //trueconsole.log('55' == 55);    //trueconsole.log('55' === 55);   //falseconsole.log('555' === '555');   //true  全等于 要数值和类型相同

逻辑运算符

        // 与  &&let count = true && false;console.log(count);   //false  两个必须都为真// 或  ||let count1 = true || false;console.log(count1);   //true  两个只要有一个为真结果就为真// 非  !let count2 = !true;console.log(count2);   //false  true的非就是false// 自动转换为false的值:NaN null undefined 0

流程控制

顺序结构

程序从头到尾依次执行每一条代码,不跳过任何代码也不重复执行代码

分支结构

也成为选择结构。可以选择性的执行代码

分支语句: if语言  switch语言

分支语句有三种使用:单分支、双分支、多分支

单分支:

if(条件){

条件成立时执行的代码;

}

if(1>0){

alter('条件成立');

}


双分支:

if(条件){

条件成立时执行的代码;

}else{

条件不成立时执行的代码;

}


多分支:

if(条件1){

条件1成立时执行的代码;

}else if(条件2){

条件2成立时执行的代码;

}else if(条件3){

条件3成立时执行的代码;

}else{

上面条件都不满足时执行的代码;

}

 

 switch(条件){

        case 值1;

        语句1;

                break;

        case 值2;

        语句2;

                break;

        default:      //用来处理特殊情况

                break;

}

循环结构

可以是程序中的某段代码重复执行多次。

for循环

for(初始化条件;结束条件;递增条件){

循环体;

}

for(let i=0;i<5;i++){

console.log(i);

}

        for(let i = 1;i<5;i++){let text=`当前数字为${i}`console.log(text);}

while循环

定义一个循环变量值

while(循环条件){

条件满足时执行的代码块;

更新循环变量;

}

let num=1;

while(num<10){

console.log(num);

num++;

}

// 先判断再执行


do-while循环

do{

循环体

}while(条件)

// 先执行后判断

控制循环

1.break 强制结束循环

2.continue 结束当前循环,开始执行下一次循环 

        // 从100里面找到一个能被14整除的数(除自身)for (let i = 1; i <= 100; i++) {// console.log('当前为'+i);if (i % 14 == 0 && i != 14) {console.log(i);   //28break;}}
        // 打印1~20内的奇数for(let x=1;x<=20;x++){// 判断是不是偶数if(x%2==0){// console.log(x);continue;}console.log(x);}

函数

函数声明

        // 方法一 函数声明

        function 函数名(){

            // 函数主体

        }

 

        // 方法二 函数表达式

        let 变量名 = function(){

            // 函数主体

        }

函数调用

函数名();

 在对象中调用函数

        let obj={name:'乖乖',// 定义fn属性名fn:function(){console.log('打印内容');   //打印内容}}// 打印函数体console.log(obj.fn);  //ƒ (){console.log('打印内容');}obj.fn();  //调用函数

操作基础 函数封装

        // 打印多次function sum(){let num = 0;for (let i = 1;i <= 100;i++){num += i;}console.log(num);}sum();sum();

函数参数 

        // 函数参数分为形式参数和实际参数,即形参和实参// 带形参的函数声明function 函数名(形参1,形参2等){}// 形参hello=实参1function XX(hello){console.log(hello);}XX(1);    //1// 带实参的函数的调用函数名(实参1,实参2等);

注意:

  • 函数最终运算结果是实参决定的
  • 函数里面的形参和实参都不需要声明
  • 函数的参数只能在函数内部进行访问
  • 可以通过传参的方式将外部的值传到函数内部

函数返回值

        function count(x,y){let sum = x + y;return sum;}// 函数没有返回值,可以用变量来接收let re = count(10,20);console.log(re);
        // 函数里面调用函数function fn(){function fn1(){console.log('wow~');}return fn1();}fn();

匿名函数

(function(形参){

}(实参)

        // 匿名函数 省略函数名(function(a){console.log(a);})('good!')

箭头函数

(形参)=>{函数体}

        // 箭头函数let fun = (str) =>{console.log(str);}fun('这是箭头函数');

作用域

全局作用域

    <script>let a = 10;   //在任何地方都可以访问到的,就是全局变量let fn =()=>{console.log(a);  //10}fn();</script>

函数作用域

        // 函数作用域 (每个函数的花括号内的部分)function fn(){let num = 555;  //声明在函数作用域下的局部变量console.log(num); }fn();

块作用域

        // 块作用域  除了函数外,其他的花括号空间都是块作用域{let x = 20;console.log(x);   //20}console.log(x);   //报错(在外部打印没有意义)

作用域是有很多层,一层一层包裹着的 变量会顺着作用域一层一层向上寻找变量。

        let str=22;{let str='字符串'function fnn(){console.log(str);}fnn();   //字符串(就近寻找)}

this指向

谁调用了这个函数,this就指向谁。

        console.log(this);  //指向window 浏览器窗口function f(){console.log(this);}f();   //依然指向windowlet obj={name:'happy!',Fn:function(){console.log(this);}}obj.Fn();  //指向obj  (指向这个函数(Fn)的调用者)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【c语言】详解操作符(下)

前言&#xff1a; 在上文中&#xff0c;我们已经学习了 原码、反码、补码、移位 操作符、移位操作符、位操作符、逗号表达式、下标访问[ ]、函数调用&#xff08; &#xff09;&#xff0c;接下来我们将继续学习剩下的操作符。 1. 结构成员访问操作符 1.1 结构体成员的直接访…

台式电脑的ip地址在哪里找

在网络连接方面&#xff0c;IP地址是非常重要的信息&#xff0c;它是用于标识网络设备的唯一地址。对于台式电脑用户来说&#xff0c;了解自己设备的IP地址是非常有必要的&#xff0c;因为它可以帮助解决网络连接问题&#xff0c;进行远程访问和共享文件等功能。本文将指导读者…

深度学习知识

context阶段和generation阶段的不同 context阶段&#xff08;又称 Encoder&#xff09;主要对输入编码&#xff0c;产生 CacheKV(CacheKV 实际上记录的是 Transformer 中 Attention 模块中 Key 和 Value 的值&#xff09;&#xff0c;在计算完 logits 之后会接一个Sampling 采…

python脚本加密

在Python中&#xff0c;可以使用一些工具对脚本进行加密&#xff0c;以增加其安全性。以下是几种常用的加密方法&#xff1a; 使用PyInstaller或Py2exe将Python脚本转换为可执行文件&#xff1a; PyInstaller和Py2exe可以将Python脚本打包成一个独立的可执行文件。这样&#…

幻兽帕鲁服务器多少钱?4核16G支持32人在线吗?

4核16G服务器是幻兽帕鲁Palworld推荐的配置&#xff0c;阿里云和腾讯云均推出针对幻兽帕鲁的4核16G服务器&#xff0c;阿里云4核16G幻兽帕鲁专属服务器32元1个月、66元3个月&#xff0c;腾讯云4核16G14M服务器66元1个月、277元3个月、1584元一年。云服务器吧yunfuwuqiba.com分享…

7.OpenResty系列之LuaRestyRedisLibrary

1. 连接需授权的redis server {location /redis1 {content_by_lua_block {local redis require "resty.redis"local red redis:new()-- 1秒red:set_timeout(1000) local ok, err red:connect("127.0.0.1", 6379)if not ok thenngx.say("failed to…

vue笔记(一):部署

首 文档 安装 1、安装nodejs&#xff08;链接&#xff09;&#xff0c;18.0以上版本。 2、在想要创建项目的目录下执行命令 npm create vuelatest 按提示创建项目&#xff0c;其中vue router是实现路由功能&#xff0c;pinia实现组件之间共享数据。如果项目需要两个功能建…

前端大厂面试题探索编辑部——第一期

目录 简介 题目 单选题 题解 A选项的Content-Security-Policy http-equiv属性 content属性 B选项的CSRF 使用CSRF Token 验证Referer和Origin头 C选项的HTTP Only D选项的防止SQL注入 输入验证和转义 简介 这个是一个长系列&#xff0c;我会以题目为导向&#xff…

LeetCode-题目整理【12】:N皇后问题--回溯算法

注意点&#xff0c;语法&#xff1a; 一定要记得初始化内层数组的长度&#xff1a;board[i] make([]rune, n)&#xff0c;否则就会报出现越界的错 // 第1步&#xff0c;初始化二维数组&#xff0c;内层数组长度为0&#xff0c;外层为nboard :make([][]rune,n)for i:0;i<n;i…

使用virtualenv管理python环境

Windows配置virtualenv 安装 pip install virtualenv virtualenvwrapper virtualenvwrapper-win设置WORK_HOME环境变量 在系统path变量中添加虚拟环境目录&#xff1a;键WORKON_HOMEC:dev\Envs 修改windows环境下mkvirtualenv.bat文件&#xff0c;配置虚拟环境根目录地址 配…

python-自动化篇-运维-监控-简单实例-道出如何使⽤Python进⾏网络监控?

如何使⽤Python进⾏⽹络监控&#xff1f; 使⽤Python进⾏⽹络监控可以帮助实时监视⽹络设备、流量和服务的状态&#xff0c;以便及时识别和解决问题。 以下是⼀般步骤&#xff0c;说明如何使⽤Python进⾏⽹络监控&#xff1a; 选择监控⼯具和库&#xff1a;选择适合⽹络监控需…

蓝桥杯省赛无忧 课件49 DFS-剪枝

01 数字王国之军训排队 02 特殊的三角形 03 特殊的多边形

优雅的python(二)

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

【docker】linux系统docker的安装及使用

一、docker应用的安装 1.1 安装方式 Docker的自动化安装&#xff0c;即使用提供的一键安装的脚本&#xff0c;进行安装。 官方的一键安装方式&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令&#xff1a;curl -s…

二刷代码随想录|Java版|回溯算法1|回溯基础理论+组合问题

理论 写链表之类的真的很痛苦&#xff0c;赶紧跳到回溯&#xff01;这次我想结合算法设计这本书&#xff0c;把java版写出来。放在第三部分吧。希望能够在研一完成这项工作&#xff01; 从一刷总结以下的几个要点&#xff1a; 回溯方法模板性非常强&#xff01;&#xff01;可…

企业虚拟机服务器中了lockbit3.0勒索病毒怎么办,lockbit3.0勒索病毒解密处理流程

对于企业来说&#xff0c;企业的数据是企业的核心命脉&#xff0c;关乎着企业的生产与运营的所有工作。随着网络技术的不断发展&#xff0c;网络安全威胁也在不断增加。近期&#xff0c;云天数据恢复中心接到了很多企业的求助&#xff0c;企业的虚拟机服务器遭到了lockbit3.0勒…

Unity MonoBehaviour 生成dll

dllllllllllllll&#x1f953; &#x1f959;vs创建类库项目&#x1f9c0;添加UnityEngine、UnityEditor引用&#x1f355;添加MonoBehaviour类&#x1f9aa;设置dll生成路径&#x1f37f;生成dll&#x1f354;使用dll中的Mono类 &#x1f959;vs创建类库项目 &#x1f9c0;添加…

网络安全攻防红队常用命令

command 收集渗透中会用到的常用命令 。 建议直接[CtrlF]查找 java命令执行 如下编码网站&#xff1a; https://ares-x.com/tools/runtime-exec/ https://r0yanx.com/tools/java_exec_encode/ https://www.bugku.net/runtime-exec-payloads/ 手动编码操作 bash -c {echo,…

网络安全产品之认识安全隔离网闸

文章目录 一、什么是安全隔离网闸二、安全隔离网闸的主要功能三、安全隔离网闸的工作原理四、安全隔离网闸的分类五、安全隔离网闸与防火墙的区别四、安全隔离网闸的应用场景 随着互联网的发展&#xff0c;网络攻击和病毒传播的方式越来越复杂&#xff0c;对网络安全的要求也越…

Nginx进阶篇【五】

Nginx进阶篇【五】 八、Nginx实现服务器端集群搭建8.1.Nginx与Tomcat部署8.1.1.环境准备(Tomcat)8.1.1.1.浏览器访问:8.1.1.2.获取动态资源的链接地址:8.1.1.3.在Centos上准备一个Tomcat作为后台web服务器8.1.1.4.准备一个web项目&#xff0c;将其打包为war8.1.1.5.启动tomcat进…