數組、冒泡排序、函數、作用域、對象、Math

數組

1.定義數組:
a)通過字面量的方式定義數組

let ary=[1,2,3,4]

b)通過定義構造函數的方式定義數組:

let 數組名=new Array(,,);
數組的操作方式

a)增

//在數組末尾添加值
arr.push(新增的內容)
//在數組的開始添加值
arr.unshift(新增的內容)

b)刪

//刪除數組末尾的值
arr.pop()
//刪除數組首部的值
arr.shift()
//刪除指定的值
arr.splice(操作的下標,刪除的個數)

排序

冒泡排序(js提供的實現方式)
//對數組進行冒泡排序:js提供了一個方法 sort()
//1.升序排列寫法
sort(function(a,b){
return a-b;})
//2.降序排列寫法
arr。sort(function(a,b){
return b-a;})

函數

注意點:+prompt(),prompt前面加?,變字符串類型為數值

//定義一個函數
//行參可以直接在函數名()中聲明,前面不用加let關鍵字
//調用函數的時候,給實參賦值即可
//形參的本質上就是一個變量,所以形參的命名完全可以按照變量的命名規則設置(叫什么都可以)
functtion 函數名(形參,形參){功能};
函數返回值
//如果希望在函數外部使用函數內部變量的值,則必須加返回值
//1.在函數內部將需要返回的值前面加return
//2.在函數外部定義一個變量接收函數內部的返回值:let變量=函數()
//舉例
function fn()
{
let a=123;
let b=456;
let c='abc';
//如果要返回多條數據
return [a,b,c];
}
//返回一個數組
let res=fn();
函數補充

1.兩個相同的函數,后面的會覆蓋前面的
2.實參和形參的個數不一致時,如果形參過多,會自動填上undefined
3.函數一旦碰到return 就不會往下執行了,函數的結束用return

匿名函數(沒有名字的函數)
function(){}
//函數只有被調用才可以執行,匿名函數連名字都沒有,如何調用執行的呢
//解決方案:
//a)將匿名函數賦值給一個變量
let fn=function(){}
//然后變量名()
fn();
//b)讓我們的匿名函數自己調用自己:自調用函數(自執行函數)
//語法:(函數體)();
//注意:自調用函數后面必須寫分號;
(function(){})();

作用域

1.let定義的變量或者const定義的變量,在同一個作用域中不能重復
2.程序在執行代碼的時候,先從當前的作用域中找變量,如果當前作用域中沒有變量,則要去全局作用域中找變量,找到就執行,否則報錯

對象

對象定義

通俗理解:對象也是一個容器,對象容器中保存的就是各種數據(比數組還要強大)
專業理解:對象是一種數據類型(以鍵值對形式保存數據的一種數據類型且數據是沒有順序的)
對象可以解決更復雜的問題----從Ajax開始遇到的所有數據90%以上都是對象格式

定義對象
//寫法1(推薦)
let 自定義對象名=屬性名:屬性值,
方法名:函數
}
//構造函數寫法
let 自定義對象名=new Object();//例子
對象的使用
//查
對象.屬性值
//改
對象.屬性=//增
對象名.新屬性名=新值
//刪(很少這么用)
delete 對象名.屬性名
增加對象中的值
a)在對象中新增屬性:對象名['自定義屬性名']=值;
b)對象名.自定義屬性名=值
c)在對象中新增方法:對象名['自定義方法名']=function(){}
d)對象名.方法名=function(){}
遍歷對象
//通過遍歷對象來獲取對象中的每一個值
for(let 變量(隨意) in 要被遍歷的對象)
{
}
//語法解釋:
//1.for in語法也是一個循環,循環次數會自動根據對象中的屬性個數進行遍歷
//2.for in語法中 變量就是對象中的屬性名(方法名)
//3.哪個對象要被遍歷,就把當前對象寫到in后面
//4.獲取對象中的值,必須通過對象名[變量]獲取let obj={
uname:'張三',
age:23,
myheight:180
//如果出現方法,還需要特殊處理eat: function () { console.log('chifan'); }
}
//要求:將對象中的每一個屬性值輸出到控制臺中
for(let abc in obj)
{
//abc這個變量保存了對象中所有的屬性和方法
console.log(abc);}
//獲取對象中的每一個屬性對應的值
console.log(obj[abc]);

在這里插入圖片描述

獲取數組中的對象
<script>// 輸出數組中的每一個值let ary = ['a', 'b', 'c'];for (let i = 0; i < ary.length; i++) {console.log(ary[i]);}// 遍歷數組中的每一個對象let students = [{ name: '小米', age: 18, gender: '男', hometown: '河北省' },{ name: '小軍', age: 18, gender: '女', hometown: '山西省' },{ name: '小飛', age: 21, gender: '男', hometown: '山東省' },{ name: '小超', age: 18, gender: '男', hometown: '河男省' }]for (let j = 0; j < students.length; j++) {console.log(students[j]);// 分貝輸出每一個對象的姓名和年齡// students[j]代表每一個對象for (let abc in students[j]) { console.log(students[j][abc]) }}</script>

在這里插入圖片描述

將數組中的對象渲染成表格
    <script>// 輸出數組中的每一個值// let ary = ['a', 'b', 'c'];// for (let i = 0; i < ary.length; i++) {//     console.log(ary[i]);// }// 遍歷數組中的每一個對象let students = [{ name: '小米', age: 18, gender: '男', hometown: '河北省' },{ name: '小軍', age: 18, gender: '女', hometown: '山西省' },{ name: '小飛', age: 21, gender: '男', hometown: '山東省' },{ name: '小超', age: 18, gender: '男', hometown: '河男省' }]//1.表格中有多少條數據,就要創建愛你多少個tr標簽//2.tr標簽中有5個td標簽//3.td標簽中的數據不是隨便寫的,td標簽中的數據,就是對象中的每一個屬性值document.write(`<table>`);document.write(`<tr><th>序號</th><th>姓名</th><th>年齡</th><th>性別</th><th>家鄉</th></tr>`)//根據數組中的數據,動態的在頁面中創建tr標簽for (let i = 0; i < students.length; i++) {document.write(`<tr><td>${i + 1}</td><td>${students[i].name}</td><td>${students[i].age}</td><td>${students[i].gender}</td><td>${students[i].hometown}</td></tr>`);}document.write(`</table>`);</script>

在這里插入圖片描述

Math

Math為內置對象
提供的方法
a)random:生成0-1之間的隨機數(包含0,不包含1)
b)ceil:向上取整
c)floor:向下取整
//max:找最大數
//min:找最小數
//pow:冪運算
//abs:絕對值

生成任意范圍內的隨機數
//生成N-M之間的隨機數
Math.floor(Math.random()*(M-N+1))+N

點名 解決名字總是重復出現,可以將已經出現過的名字從數組中刪除

專業術語

在這里插入圖片描述

數據類型的存儲方式

數據類型的分類:簡單類型(數字、字符串、布爾、undefined)+引用類型(對象)
簡單類型在棧上保存數據,引用類型在堆上保存數據
在這里插入圖片描述
這里的對象是復雜類型保存在堆上,而對象賦值給obj,obj是簡單類型保存在棧中,棧中存儲的是對象的地址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716392.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716392.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716392.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis主從復制+Redis哨兵模式+Redis群集模式

Redis主從復制Redis哨兵模式Redis群集模式一、Redis主從復制1、主從復制的作用2、主從復制過程3、搭建Redis主從復制3.1 所有節點服務器安裝redis3.2 修改Redis配置文件(Master節點操作)3.3 修改Redis配置文件(Slave節點操作)3.4 驗證主從效果 二、Redis哨兵模式1、哨兵模式的作…

8、IBOScms代碼審計

一、sql注入 1、sql注入(Ⅰ) 限制 rreport/api/getlist {"offset":0,"type":"send","keyword":{"subject":"111) AND (updatexml(1,concat(0x7e,(select user()),0x7e),1))-- qw"}}復現 POST /?rreport/api/…

Vue開發實例(十一)用戶列表的實現與操作

用戶列表的實現與操作 一、創建用戶頁面和路由二、表格優化1、表頭自定義2、表格滾動3、加入數據索引4、利用插槽自定義顯示 三、功能1、查詢功能3、增加4、刪除5、修改 一、創建用戶頁面和路由 創建用戶頁面 在 src/components/Main 下創建文件夾user&#xff0c;創建文件Us…

Java ZooKeeper-RocketMQ 面試題

Java ZooKeeper-RocketMQ 面試題 前言1、談談你對ZooKeeper的理解 &#xff1f;2、Zookeeper的工作原理&#xff08;Zab協議&#xff09;3、談談你對分布式鎖的理解&#xff0c;以及分布式鎖的實現&#xff1f;4、 zookeeper 是如何保證事務的順序一致性的&#xff1f;5、 zook…

設計模式之策略模式詳解

目錄 什么是策略模式 應用場景 業務場景實現 抽象類 實現類 Context上下文 測試類 策略模式的優缺點 什么是策略模式 他將定義的算法家族、分別封裝起來&#xff0c;讓他們之間可以相互替換&#xff0c;從而讓算法的變化不會影響到使用算法的用戶。 策略模式使用的就是…

idea出現莫名其妙錯的時候

正常情況idea使用起來都很順手&#xff0c;但是當項目比較多的時候&#xff0c;可能出現莫名奇妙的錯誤&#xff0c;比如導入的包始終報錯java: 程序包com不存在&#xff0c;或者引入自己寫的包也不存在&#xff0c;或者始終出現紅線但是排查之后沒有問題的情況&#xff0c;這種…

進來吧,給自己10分鐘,這篇文章帶你直接學會python

Python的語言特性 Python是一門具有強類型(即變量類型是強制要求的)、動態性、隱式類型(不需要做變量聲明)、大小寫敏感(var和VAR代表了不同的變量)以及面向對象(一切皆為對象)等特點的編程語言。 獲取幫助 你可以很容易的通過Python解釋器獲取幫助。如果你想知道一個對象(o…

OJ:鏈表的中間結點

876. 鏈表的中間結點 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a;首先最容易想到的思路是什么呢&#xff0c;就是先遍歷一遍鏈表&#xff0c;用一個值count來記錄鏈表的長度&#xff0c;然后我們運用除法&#xff0c;/2&#xff0c;結果是幾&#xff0c;就…

【C++干貨基地】揭秘C++11常用特性:內聯函數 | 范圍for | auto自動識別 | nullptr指針空值

&#x1f3ac; 鴿芷咕&#xff1a;個人主頁 &#x1f525; 個人專欄: 《C干貨基地》《粉絲福利》 ??生活的理想&#xff0c;就是為了理想的生活! 引入 哈嘍各位鐵汁們好啊&#xff0c;我是博主鴿芷咕《C干貨基地》是由我的襄陽家鄉零食基地有感而發&#xff0c;不知道各位的…

平臺工程: 用Backstage構建開發者門戶 - 2

本文介紹了如何使用開源Backstage構建自己的開發者門戶&#xff0c;并基于此實踐平臺工程。本系列共兩篇文章&#xff0c;這是第二篇。原文: Platform Engineering: Building Your Developer Portal with Backstage — Part 2 在本教程第一部分中我們了解了Backstage這個用于構…

外貿網站模板建站

測繪檢測wordpress外貿主題 簡潔實用的wordpress外貿主題&#xff0c;適合做測繪檢測儀器設備的外貿公司使用。 https://www.jianzhanpress.com/?p5337 白馬非馬衣服WordPress外貿建站模板 白馬非馬服裝行業wordpress外貿建站模板&#xff0c;適用于時間服裝企業的官方網站…

Git 如何上傳本地的所有分支

Git 如何上傳本地的所有分支 比如一個本地 git 倉庫里定義了兩個遠程分支&#xff0c;一個名為 origin&#xff0c; 一個名為 web 現在本地有一些分支是 web 遠程倉庫沒有的分支&#xff0c;如何將本地所有分支都推送到 web 這個遠程倉庫上呢 git push web --all

pytorch loss函數整理

變量名解釋 logits&#xff1a;未經過normalize&#xff08;未經過激活函數處理&#xff09;的原始分數&#xff0c;例如一個mlp將特征映射到num_target_class維的輸出tensor就是logits。 probs&#xff1a;probabilities的簡寫&#xff0c;logits經過sigmoid函數&#xff0c;…

Doris實戰——銀聯商務實時數倉構建

目錄 前言 一、應用場景 二、OLAP選型 三、實時數倉構建 四、實時數倉體系的建設與實踐 4.1 數倉分層的合理規劃 4.2 分桶分區策略的合理設置 4.3 多源數據遷移方案 4.4 全量與增量數據的同步 4.5 離線數據加工任務遷移 五、金融級數倉穩定性最佳實踐 5.1 多租戶資…

Jenkins的Pipeline概念

文章目錄 Pipeline什么是Jenkins Pipeline聲明式和腳本式Pipeline語法為何使用PipelinePipeline概念PipelineNodeStageStep Pipeline語法概述聲明式Pipeline腳本式Pipeline Pipeline示例 參考 Pipeline 什么是Jenkins Pipeline Jenkins Pipeline是一套插件&#xff0c;它支持…

【Django】model模型—模型繼承

Django中三種繼承風格 抽象基類&#xff1a;僅將父類用于子類公共信息的載體&#xff0c;這樣的父類永遠都不會單獨使用。多表繼承&#xff1a;繼承了一個模型&#xff08;可能來源其它應用&#xff09;&#xff0c;且想要每個模型都有對應的數據表。代理模型&#xff1a;只想…

JProfiler相關問題及答案(2024)

1、JProfiler是什么及其用途 JProfiler是一款功能豐富的商業Java性能剖析&#xff08;profiling&#xff09;工具&#xff0c;它主要面向開發者和性能分析師&#xff0c;用于監測和分析Java應用程序的運行時行為。以下是對JProfiler的一些詳細介紹和它的主要用途&#xff1a; …

webpack的一些知識

核心 webpack 是用來搭建前端工程的它運行在node環境中&#xff0c;它所做的事情&#xff0c;簡單來說&#xff0c;就是打包具體來說&#xff0c;就是以某個模塊作為入口&#xff0c;根據入口分析出所有模塊的依賴關系&#xff0c;然后對各種模塊進行合并、壓縮&#xff0c;形…

洛谷P1157 組合的輸出

深搜板子加一點點修改&#xff0c;適合初學者體會深搜&#xff0c;具體看代碼 題目鏈接 ACcode #include<bits/stdc.h>using namespace std;int a, b;bitset<50>vis;//剪枝 int d[50];void dfs(int x) {if (x b 1) {for (int i 1;i < b;i)cout << se…

HBM(High Bandwidth Memory)

選擇正確的高帶寬內存 構建高性能芯片的選擇越來越多&#xff0c;但附加內存的選擇卻幾乎沒有變化。為了在汽車、消費和超大規模計算中實現最大性能&#xff0c;選擇取決于一種或多種 DRAM&#xff0c;而最大的權衡是成本與速度。 盡管多年來人們一直在努力用更快、更便宜或更…