JS第一阶段2

文章目录

    • 1. 对象
      • 创建对象的三种方式
      • new关键字
      • 遍历对象属性
    • 2. JS内置对象
    • 2.1查文档
    • 2.2Math对象
      • 随机数
    • 2.3日期对象
      • Date 使用
      • 日期格式化
      • 获取日期的总的毫秒形式
      • 倒计时秒杀案例
    • 2.4数组对象
      • 检测是否是数组
      • 添加删除数组元素的方法
      • 数组排序
      • 数组索引方法
      • 数组去重案例
      • 数组转换为字符串
    • 2.5字符串对象
      • 基本包装类型
      • 字符串的不可变
      • 根据字符返回位置
      • 根据位置返回字符(重点)
      • 字符串操作方法(重点)
      • replace()方法
      • split()方法
      • 简单类型与复杂类型
      • 堆和栈
      • 简单类型传参
      • 复杂类型传参

1. 对象

在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
1.属性:事物的特征,在对象中用属性来表示(常用名词)
2.方法:事物的行为,在对象中用方法来表示(常用动词)
保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。如果要保存一个人的完整信息就用对象

创建对象的三种方式

1. 字面量创建对象
在这里插入图片描述

var star = {name : 'pink',age : 18,sex : '男',sayHi : function(){alert('大家好啊~');}
};

在这里插入图片描述

//变量、属性、函数、方法的区别
1.变量和属性的相同的他们都是用来存储数据的
var num=10;
var obj={age:18,fn:function(){}
function fn(){}//在外面的叫函数,在里面的叫方法
console.log(obj.age);
//console.10g(age);×变量单独声明并赋值使用的时候直接写变量名单独存在属性在对象里面的不需要声明的使用的时候必须是对象。属性
2.函数和方法的相同点都是实现某种功能做某件事
//函数是单独声明 并且调用的,函数名() 单独存在
//方法 在对象里面 调用的时候 对象.方法()

2. new Object 创建对象

跟我们前面学的 new Array() 原理一致

var andy = new Obect();
andy.name = 'pink';
andy.age = 18;
andy.sex = '男';
andy.sayHi = function(){alert('大家好啊~');
}

Object() :第一个字母大写
new Object() :
需要 new 关键字 使用的格式:对象.属性 = 值;

3. 构造函数创建对象
在这里插入图片描述

function Person(name, age, sex) {this.name = name;this.age = age;this.sex = sex;this.sayHi = function() {alert('我的名字叫:' + this.name + ',年龄:' + this.age + ',性别:' + this.sex);}
}
var bigbai = new Person('大白', 100, '男');
var smallbai = new Person('小白', 21, '男');
console.log(bigbai.name);
console.log(smallbai.name);

在这里插入图片描述

  1. 构造函数,如 Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class) 创建对象,如 new
  2. Stars(),特指某一个,通过 new 关键字创建对象的过程我们也称为对象实例化

new关键字

在这里插入图片描述

遍历对象属性

for…in 语句用于对数组或者对象的属性进行循环操作。

for (变量 in 对象名字) {// 在此执行代码
}
语法中的变量是自定义的,它需要符合命名规范,通常我们会将这个变量写为 k 或者 key。
for (var k in obj) {console.log(k);      // 这里的 k 是属性名console.log(obj[k]); // 这里的 obj[k] 是属性值
}

在这里插入图片描述

2. JS内置对象

2.1查文档

在这里插入图片描述
MDN: https://developer.mozilla.org/zh-CN/
1.查阅该方法的功能
2.查看里面参数的意义和类型
3.查看返回值的意义和类型
4.通过 demo 进行测试

2.2Math对象

Math 对象不是构造函数,不需要new来调用,直接使用属性和方法,跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。

Math.PI		 
console.log(Math.PI);// 圆周率
Math.floor() 	 // 向下取整,舍去小数部分
Math.ceil()      // 向上取整,小数部分全进一
Math.round()    // 四舍五入版 就近取整   注意 -3.5   结果是  -3 
Math.abs()		 // 绝对值
Math.max()/Math.min()	 // 求最大和最小值 

注意:上面的方法必须带括号

//封装数学对象案例var myMath={PI: 3.14927834625,max: function(){var max=arguments[0];for(var i=1;i<arguments.length;i++){max>arguments[i]?max=max:max=arguments[i]}return max;},min: function(){var min=arguments[0];for(var i=1;i<arguments.length;i++){min<arguments[i]?min=min:min=arguments[i]}return min;}}console.log(myMath.PI);console.log(myMath.max(12,23,1,6,90));console.log(myMath.min(12,23,1,6,90));

随机数

random() 方法可以随机返回一个小数,其取值范围是 [0,1),左闭右开 0 <= x < 1
得到一个两数之间的随机整数,包括两个数在内

生成随机数
function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min; 
}
、、随机点名
var arr=['张三','张三丰','张三丰在','李四']console.log(arr[getRandom(0,arr.length-1)]);

2.3日期对象

Date 使用

Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用, Date 实例用来处理日期和时间
在这里插入图片描述
在这里插入图片描述

日期格式化

在这里插入图片描述

获取日期的总的毫秒形式

Date 对象是基于1970年1月1日(世界标准时间)起的毫秒数
用总的毫秒数来计算时间更精确

// 实例化Date对象
var now = new Date();
// 1. 用于获取对象的原始值,现在的时间距离1970.1.1的总毫秒数
console.log(date.valueOf())	
console.log(date.getTime())	
// 2. 简单写可以这么做
var now = + new Date();			
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();

倒计时秒杀案例

在这里插入图片描述

//倒计时秒杀案例function countDown(time){var nowTime=+new Date();var endTime=+new Date(time);var times=(endTime-nowTime)/1000;//秒杀结束距离现在剩余的秒数var s=parseInt(times%60);s<0?'0'+s:s;var min=parseInt(times/60%60);min<0?'0'+min:min;var hour=parseInt(times/60/60%24);hour<0?'0'+hour:hour;var day=parseInt(times/24/60/60);day<0?'0'+day:day;return day+'天'+hour+'时'+min+'分'+s+'秒';}console.log(countDown("2024-3-8 16:00:00"));var date =new Date();console.log(date);

2.4数组对象

创建数组对象的两种方式:
1.字面量方式

var arr = [1,2,3];

2.new Array()

var arr1 = new Array(2);//2表示数组长度为2,里面有两个空的数组元素
var arr1 = new Array(2,3);//2,3表示[2,3]

检测是否是数组

在这里插入图片描述

添加删除数组元素的方法

在这里插入图片描述

//删除工资超过2000的var arr=[1500,1200,2000,2100,1800];var newArr =[];for (var i=0;i<arr.length;i++){if(arr[i]<2000){newArr.push(arr[i]);}}console.log(newArr);

数组排序

在这里插入图片描述

//数组排序{冒泡}var arr1 = [13,4,77,1,7];arr.sort(function(a,b){return a-b;//升序//return b-a;降序});console.log(arr1);

数组索引方法

在这里插入图片描述

数组去重案例

在这里插入图片描述

var arr1=['z','a','c','a','x','a','a','z','a','a'];function unique(arr){var newArr =[];for (var i=0;i<arr.length;i++){if (newArr.indexOf(arr[i])===-1){newArr.push(arr[i]);}}return newArr;}console.log(unique(arr1));

数组转换为字符串

在这里插入图片描述

var arr1=['green','blue','pink'];console.log(arr1.toString());//green,blue,pinkconsole.log(arr1.join());//green,blue,pinkconsole.log(arr1.join('-'));//green-blue-pink

在这里插入图片描述

2.5字符串对象

基本包装类型

在这里插入图片描述

字符串的不可变

在这里插入图片描述

根据字符返回位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

var  arr=['red','green','blue','pink','red','red'];var num=0;var index=arr.indexOf('red');while(index!==-1){console.log(index);num++;index =arr.indexOf('red',index+1);}console.log("red出现的次数为:"+num);

根据位置返回字符(重点)

在这里插入图片描述
有一个对象,来判断是否有该属性:对象[‘属性名’];

var o={
age=19;}
if(0['sex']){
console.log('里面有该属性')}

在这里插入图片描述

 var str="oqqqqqqqoioooooopqxbafgdskjjoohj";var o={};for(var i=0;i<str.length;i++){var chars=str.charAt(i);if(o[chars]){//o[chars]得到的是属性值o[chars]++;}else{o[chars]=1;}}console.log(o);var max=0;var ch='';for (var k in o){//k是属性名if (o[k]>max){//o[k]得到的是属性值max = o[k];ch = k;}}console.log('最多的字符是:'+ch+'\n'+'有'+max+'个');

在这里插入图片描述

字符串操作方法(重点)

在这里插入图片描述

replace()方法

replace() 方法用于在字符串中用一些字符替换另一些字符。

replace(被替换的字符串, 要替换为的字符串)

split()方法

split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组

var str = 'a,b,c,d';
console.log(str.split(','));   // 返回的是一个数组 [a, b, c, d]

toUpperCase() //转换大写
toLowerCase() //转换小写
在这里插入图片描述

简单类型与复杂类型

在这里插入图片描述

堆和栈

在这里插入图片描述

简单类型传参

在这里插入图片描述

复杂类型传参

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio配置libtorch(cuda安装一步到位)

Visual Studio配置libtorch visual Studio安装cuDNN安装CUDAToolkit安装libtorch下载Visual Studio配置libtorch(cuda版本配置) visual Studio安装 visual Studio点击安装 具体的安装和配置过程这里就不进行细讲了&#xff0c;可以参考我这篇博客Visual Studio配置OpenCV(保姆…

数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)

概念大合集01 1、数据结构基础的定义2、数据结构2.1 数据元素之间关系的集合2.2数据结构的三要素2.2.1数据的逻辑结构2.2.2数据的存储&#xff08;物理&#xff09;结构2.2.3数据的运算 3、数据类型4、抽象数据类型类型&#xff08;ADT&#xff09;5、算法及其描述5.1算法的5个…

R语言实现中介分析(1)

中介分析&#xff0c;也称为介导分析&#xff0c;是统计学中的一种方法&#xff0c;它用于评估一个或多个中介变量&#xff08;也称为中间变量&#xff09;在自变量和因变量之间关系中所起的作用。换句话说&#xff0c;中介分析用于探索自变量如何通过中介变量影响因变量的机制…

将 OpenCV 与 Eclipse 结合使用(插件 CDT)

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;将OpenCV与gcc和CMake结合使用 下一篇&#xff1a;OpenCV4.9.0在windows系统下的安装 警告&#xff1a; 本教程可以包含过时的信息。 先决条件 两种方式&#xff0c;一种…

【IC设计】Verilog线性序列机点灯案例(二)(小梅哥课程)

文章目录 该系列目录&#xff1a;设计目标设计思路RTL 及 Testbench仿真结果存在的问题&#xff1f;改善后的代码RTL代码testbench代码 仿真结果 案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔记&#xff0c;如有学习需要请支持官方正版。 该系列目录&#xff1a;…

接雨水-热题 100?-Lua 中文代码解题第4题

接雨水-热题 100&#xff1f;-Lua 中文代码解题第4题 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释…

2.2 物理层传输介质

文章目录 2.2 物理层传输介质&#xff08;一&#xff09;传输介质及分类&#xff08;二&#xff09;导向型传输介质&#xff08;1&#xff09;双绞线&#xff08;2&#xff09;同轴电缆&#xff08;3&#xff09;光纤 &#xff08;三&#xff09;非导向性传输介质 总结 2.2 物理…

数字多空策略(实盘+回测+数据)

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

计算机网络----计算机网络的基础

目录 一.计算机网络的相关概念 二.计算机网络的功能 三.计算机网络的发展 四.计算机网络的组成 五.计算机网络的分类 六.计算机的性能指标 1.速率 2.带宽 3.吞吐量 4.时延 5.时延带宽积 6.往返时延RTT 7.利用率 七.计算机的分层结构 八.ISO/OSI参考模型 九.OSI…

【四 (6)数据可视化之 Grafana安装、页面介绍、图表配置】

目录 文章导航一、Grafana介绍[✨ 特性]二、安装和配置1、安装2、权限配置&#xff08;账户/团队/用户&#xff09;①用户管理②团队管理③账户管理④看板权限 3、首选项配置4、插件管理①数据源插件②图表插件③应用插件④插件安装方式一⑤安装方式二 三、数据源管理1、添加数…

宜搭faas服务器获取accessToken

可以用faas服务器的OpenAPIUtil.getCustomAccessTokenThenCache&#xff08;Client ID,Client Secret&#xff09;就可以获取 至于获取这个Client ID&#xff0c;Client Secret 就需要在钉钉开放平台创建一个应用 然后在这个应用的基础信息里面有 注意的是&#xff1a;如果需要…

如何通过小程序上的产品力和品牌力提升用户的复购能力?

随着网络购物小程序的发展以及内容电商、社交电商、垂直电商、品牌自营等多个细分类型的出现&#xff0c;小程序成为用户日常购物、大促囤货以及首发抢购的重要场景&#xff0c;市场竞争也逐渐激烈。如何在用户侧获得更多转化、留存与复购&#xff0c;成为企业品牌日益关注的话…

复习知识点

1. Java常用API 1.1 String类 在java中&#xff0c;String类代表字符串&#xff0c;字符串是常量的&#xff0c;不能被改变。如果想改变字符串。可以用字符串的缓冲区&#xff0c;StringBuffer、StringBuilder 1.1.1 String类的创建方式 第一种&#xff08;常用&#xff09…

DZB-214中间继电器 工作电压220V-保持电流1A-面板安装 JOSEF约瑟

系列型号:DZB-200中间继电器 DZB-210中间继电器&#xff1b;DZB-213中间继电器&#xff1b; DZB-214中间继电器&#xff1b;DZB-217中间继电器&#xff1b; DZB-220中间继电器&#xff1b;DZB-226中间继电器&#xff1b; DZB-228中间继电器&#xff1b;DZB-230中间继电器&#…

基于springboot+mysql+Shiro实现的宠物医院管理系统

1.项目介绍 系统主要为用户提供了管理员权限的用户&#xff0c;实现了前台查看客户信息、在线添加预约等&#xff1b;后台管理医生坐诊信息、管理就诊信息、修改密码&#xff0c;管理公告、管理宠物分类、管理就诊、管理用户、修改密码等。在设计方面&#xff0c;本系统采用MV…

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目&#xff0c;获取项目文件夹 这步基本都不会有问题&#xff1a; 二.安装Android Studio 安装过程参考教材就行了&#xff1a; https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项&#xff08;勾…

Explain 关键字

优质博文&#xff1a;IT-BLOG-CN explain关键字可以模拟优化器执行 SQL 查询语句&#xff0c;从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句&#xff1a;explain SQL语句。表头信息如下&#xff1a; 一、ID 参数 select 查询的序列号&…

Webapi(.net6) 批量服务注册

如果不考虑第三方库&#xff0c;如Autofac这种进行服务注入&#xff0c;通过本身的.Core Weabpi实现的&#xff0c;总结了两种实现方法&#xff0c; 1.一种是参考abp框架里面的形式; 1.1 新建个生命周期的文件夹: 三个接口分别为: public interface IScopedDependency { }pu…

微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p25&vd_source9b149469177ab5fdc47515e14cf3cf74 一、javascript参考手册——splice https://www.…

Qt教程 — 3.4 深入了解Qt 控件:Input Widgets部件(3)

目录 1 Input Widgets简介 2 如何使用Input Widgets部件 2.1 Dial 组件-模拟车速表 2.2 QScrollBar组件-创建水平和垂直滚动条 2.3 QSlider组件-创建水平和垂直滑动条 2.4 QKeySequenceEdit组件-捕获键盘快捷键 Input Widgets部件部件较多&#xff0c;将分为三篇文章介绍…