JS自学笔记04
JS自学笔记04
arguments[索引]
实参的值
1、对象
1)创建对象
①调用系统的构造函数创建对象
var obj=new Object();
//添加属性。对象.名字=值;
obj.name="cc";
obj.age=18;
//添加方法
obj.eat=function(){...};
//调用
obj.eat();
②自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
工程模式:
对象名 Instanceof 对象名
根据对象是否属于给定类 返回布尔值
function createObject(){
var obj=new Object();
obj,name="cc";
obj.say=function(){
...
}
return obj;
}
//调用
var per1=createObject();
function createObject(name,age){
var obj=new Object();
this.name=name;
this.age=age;
return obj;
}
自定义构造函数创建对象做了4件事
1、内存中开辟空间,存储创建的新的对象
2、把this设置为当前的对象
3、设置对象的属性和方法的值
4、返回this对象
示意图:
③字面量的方式创建对象
var obj={};//创建了空对象
var obj2={};
obj2.name="xx";
obj.say=function(){
...
};//属性和方法都是在类外添加的
var obj3={
name:"cc",
age:20,
say:function(){...}
}
缺陷是:一次性的对象
js是一门解释性,脚本,弱类型,基于对象,动态类型的语言。
访问属性的另一种方法:
function Person(name,age){
this.name=name;
this.age=age;
this.play=function(...){...};
}//自定义类
var obj=new Person("cc",20);
obj["name"]=xx;
//通过中括号取代点
obj["play"]();
2、JSON
成对出现,是键值对。无论是键还是值都用双引号括起来
var json={
"name":"cc";
"age":"10";
"sex":"male";
};
//遍历
可以通过for-in循环
for(var key in json){
console.log(key);//key存储json对象中的属性名字
cosole.log(json[key]);
}//key处变量不一定要取名为key,自定义即可
3、简单类型和复杂类型
1)原始数据类型:number,string,boolean等
2)基本类型,简单类型,值类型。在栈中存储:number,string,boolean
3)复杂类型(引用类型):object
4)空类型:null,undefined
引用类型的值在栈和堆中存储。对象在堆上存储,地址在栈上存储
4、值类型与引用类型的传递
var obj={
name:"小明"
};
function f2(obj2){
obj2.name="xx";
}
f2(obj);
console.log(obj.name);//xx,因为obj与obj2所指向的地址都是相同的
值类型之间传递的是值,引用类型作为函数的参数,传递的是地址
因为第二条指令传的是num1的值,var了两个东西,地址不一样。
5、内置对象
js系统自带的对象
Math,Date,String,Array
6、Math对象
不是函数的对象
是静态对象,不需要创建,自己就是一个对象,方法(静态方法)直接通过这个对象的名字调用。不能实例化对象。实例方法必须通过实例对象调用。
Math.random();//随机数生成,范围是0~1
JS自学笔记04的更多相关文章
- JS自学笔记05
JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...
- JS自学笔记03
JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...
- JS自学笔记02
JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...
- JS自学笔记01
JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...
- JAVA自学笔记04
JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...
- Node.js自学笔记之回调函数
写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记04
day4课程目录: 逻辑运算符 while循环 day4课程内容梳理: 逻辑运算符 算数运算符:+,-,*,/,%,** 比较运算符:< ,>, ==,<=,>=,!=, 逻辑 ...
- JavaScript自学笔记(1)---表单验证,let和const,JSON文件
今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...
- jQuery:自学笔记(4)——事件与事件对象
jQuery:自学笔记(4)——事件与事件对象 jQuery中的事件 什么是事件 所谓事件,就是被对象识别的操作,即操作对象队环境变化的感知和反应,例如单击按钮或者敲击键盘上的按键. 所谓事件流,是指 ...
随机推荐
- wb 黑名单批量操作
0. 参考 yu961549745/WeiboBlackList 微博批量拉黑 1. 代码 block.py 更新内容:多线程,urllib.request 改为 requests + sessio ...
- 修改input 的 placeholder
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666!important; } inp ...
- AtCoder Regular Contest 101 (ARC101) D - Median of Medians 二分答案 树状数组
原文链接https://www.cnblogs.com/zhouzhendong/p/ARC101D.html 题目传送门 - ARC101D 题意 给定一个序列 A . 定义一个序列 A 的中位数为 ...
- scrapy response.xpath可以提取包含字符XX的标签
1. 筛选属性包含某字符串的标签(如id = 'bigbaong' 查询包含'big'字符的就可以筛选到) res = response.xpath("//a[contains(@id, ...
- ES6 系列之 defineProperty 与 proxy
,, ; ; ; } ; }); }; ; }); } });
- Web界面实现数据库增删改查过程
实现方法:JSP+Servlet+JavaBean 基本实现思想:jsp文件为显示界面,包括增删改查四个界面,然后使用form或者href超链接的方法将网页获得的值传到Servlet中的方法里:而se ...
- POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
<题目链接> 题目大意: 给你一个H*W的矩阵,再告诉你有n个坐标有点,问你一个w*h的小矩阵最多能够包括多少个点. 解题分析:二维树状数组模板题. #include <cstdio ...
- Airtest基本使用
前段时间在博客中见到airtest的介绍,自己并实践了一番,用起来的确很方便,所以今天就来分享下. Airtest简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试 ...
- ASP.Net Core中使用jquery-ajax-unobtrusive替换Ajax.BeginForm
在大潮流下,大家都在研究MVVM框架,但是做面向搜索引擎的外网项目还是得用服务器渲染. 在.Net中肯定就是用Razor模板引擎了. .Net Core断臂式重构后,很多在老得Mvc中使用得好好的一些 ...
- EF Core中的多对多映射如何实现?
EF 6.X中的多对多映射是直接使用HasMany-HasMany来做的.但是到了EF Core中,不再直接支持这种方式了,可以是可以使用,但是不推荐,具体使用可以参考<你必须掌握的Entity ...