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的更多相关文章

  1. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  2. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

  3. JS自学笔记02

    JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...

  4. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  5. JAVA自学笔记04

    JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...

  6. Node.js自学笔记之回调函数

    写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...

  7. 老男孩Python全栈开发(92天全)视频教程 自学笔记04

    day4课程目录: 逻辑运算符 while循环 day4课程内容梳理: 逻辑运算符 算数运算符:+,-,*,/,%,** 比较运算符:< ,>, ==,<=,>=,!=, 逻辑 ...

  8. JavaScript自学笔记(1)---表单验证,let和const,JSON文件

    今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...

  9. jQuery:自学笔记(4)——事件与事件对象

    jQuery:自学笔记(4)——事件与事件对象 jQuery中的事件 什么是事件 所谓事件,就是被对象识别的操作,即操作对象队环境变化的感知和反应,例如单击按钮或者敲击键盘上的按键. 所谓事件流,是指 ...

随机推荐

  1. 替罪羊树&&非旋treap

    题解: 替罪羊树的模板和splay差距还是比较大的.. 按照我的splay的写法 真是都是问题.. 替罪羊树就是暴力的搞 当某颗子树大小大于这棵树的alpha时 就退出 另外删除的时候打懒标记删除 当 ...

  2. [转]GitHub for Windows 安装失败,An error occurred attempting to install github 的解决办法

    解决办法: 只需要将 http://github-windows.s3.amazonaws.com/GitHub.application http改为https,然后在IE上打开,安装即可 问题如下 ...

  3. nginx+keepalived实现 负载均衡 高可用

    Vip: 192.168.220.18 Rip1:192.168.220.2 Rip:192.168.220.3 Rip可以配置在一个服务器上通过ip做虚拟主机 1 rs上配置环境 2 配置应用 Yu ...

  4. k8s 相关命令

    kompose convert -f docker-compose-pro.yml k8s数据卷挂载: https://blog.csdn.net/wlhdo71920145/article/deta ...

  5. Codeforces 1045A Last chance 网络流,线段树,线段树优化建图

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1045A.html 题目传送们 - CF1045A 题意 你有 $n$ 个炮,有 $m$ 个敌人,敌人排成一 ...

  6. 如何用 Python 模糊搜索文件

    一.我的文件在哪里? 1.告诉计算机文件在哪 使用路径描述位置 绝对路径——从根目录写到底 内置模块OS 路径 目录 文件 其他系统操作 2.描述文件的特征 用条件判断来筛选 3.对比后打印文件名 用 ...

  7. day56 文件 文档处理,事件

    前情回顾: 1. 前情回顾 0. 选择器补充 - 属性选择器 - $("[egon]") - $("[type='text']") - $("inpu ...

  8. Java集合—Set集和Map集

    一.Set集合 1.概述 Set集合无序的.不可重复的元素(无序是指索引) Set集合不按照特定的方法进行排序,只是将元素放在集合中. 下面介绍一下Set集合的HashSet和TreeSet两个实现类 ...

  9. Redis+Shiro+Spring-data-redis,共享Session

    环境:centos7,Java1.8+,一个Nginx,两个Tomcat,一个Redis. 关于共享session的问题大家都应该知道了,传统的部署项目,两个相同的项目部署到不同的服务器上,Nginx ...

  10. HDU4578 Transformation【线段树】

    <题目链接> <转载于 >>> > 题目大意: 有一个序列,有四种操作: 1:区间[l,r]内的数全部加c. 2:区间[l,r]内的数全部乘c. 3:区间[l ...