将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法
获得对象的所有属性名 || 将对象o的所有属性名放到数组中
var o = {x:1,y:2,z:3};
var arr = [];
var i = 0;
for(arr[i++] in o){};//是空的循环体
console.log(arr);
["x", "y", "z"]
在js中遇到return;可以看到运行到return;函数到这就停止了,循环也停止了,只是return;后面的不执行了,在这之前打印的还在,也就是说函数和循环中的return;没有原子性的,不会回滚像没打印一样。
function a(x){
for(var i = ;i<x;i++){
console.log(i+':'+i);
if(i == ){return;}
console.log('after return');
}
}; a();
:
after return
:
after return
:
after return
:
after return
:
after return
:
怎样自定义异常 || 怎样抛出自己的异常 || 怎样自己制作异常
function fa(x){
if(x<){throw new Error(x+'小于0');}//抛出异常时,后面的代码就不再执行了
console.log(x);
} fa(-);
Uncaught Error: -1小于0(…)
关于try catch只要执行了try里代码的一部分,无论try代码块执行了多少,finally从句都会被执行
判断对象有没有某个属性
if(o.x !== undefined){
这是o有x属性的情况
}else{
这是o没有x属性的情况
}
函数的传递的参数多于需要的参数时,多余的会被忽略;当传递的参数比需要的参数少的时候,没有的参数会被赋予undefined值。
arguments是函数实际传递的数组
function f(x,y,z){
if(arguments.length != ){
throw new Error('f的参数不等于3');
}
for(var i = ;i<arguments.length;i++){
console.log(arguments[i]);
}
} f('a','b');
Uncaught Error: f的参数不等于3(…)
function f(x,y,z){
if(arguments.length != 3){
throw new Error('f的参数不等于3');
}
for(var i = 0;i<arguments.length;i++){
console.log(arguments[i]);
}
} f('a','b','c'); a b c
用函数处理一个对象
var o = {"x":"","y":""};
function f(){
for(var i in this){
console.log(i);//i为属性名
if(i == "x"){this[i]+=}//this[i]可以获得属性值
console.log(this[i]);
}
} f.call(o);
x
y
用一个名字空间定义一个模块所有的函数,就是方法
var Class = {};
Class.methodA = function(pa){console.log(pa);};
Class.methodB = function(pb,pc){console.log(pb+pc);};
Class.methodA('');
Class.methodB(,);
//给一个对象添加方法
var Class = {"x":"","y":""};
Class.methodA = function(pa){console.log(pa);};
Class.methodB = function(pb,pc){console.log(pb+pc);};
Class.methodA('');
Class.methodB(,);
将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法的更多相关文章
- 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...
- 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中
package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayLis ...
- C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework
C#实现如何判断一个数组中是否有重复的元素 如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...
- JS案例之8——从一个数组中随机取数
近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...
- js中关于一个数组中最大、最小值以及它们的下标的输出的一种解决办法
今天在学习js中的数组时,遇到的输出一个数组中最大.最小值以及它们的下表,以下是自己的解决方法! <script type="text/javascript"> var ...
- 【leetcode】Merge Sorted Array(合并两个有序数组到其中一个数组中)
题目: Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assum ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
- C#获取一个数组中的最大值、最小值、平均值
C#获取一个数组中的最大值.最小值.平均值 1.给出一个数组 ,,,,,-,,,,}; 2.数组Array自带方法 本身是直接可以调用Min(),Max(),Average()方法来求出 最小值.最大 ...
- php 从一个数组中随机获取固定数据
<?php /* * * 通过一个标识,从一个数组中随机获取固定数据 * $arr 数组 * $num 获取的数量 * $time 随机固定标识值,一般用固定时间或者某个固定整型 * */ fu ...
随机推荐
- 在chrome 总调试cordova出现Detached from the target. Remote debugging has been terminated with reason: Connection lost. Please re-attach to the new target
在chrome 总调试cordova出现如下错误: "Detached from the target. Remote debugging has been terminated with ...
- HTML 图像显示
HTML 图像显示:图像标签:<img>,源属性:Src<img>是空标签,没有闭合标签,它只包含属性:显示图像时需要调用源属性src:src的值是图像的地址:语法:<i ...
- Python之路,day3-Python基础
三级菜单 menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, ...
- 一种让超大banner图片不拉伸、全屏宽、居中显示的方法
现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> ...
- OPENVPN
安装 方法1--源码安装yum -y install pam pam-devel gcc gcc-c++ lzo lzo-devel openssl openssl-devel wget autom ...
- java并发编程系列
1.多线程的概念与使用:java笔记五:多线程的使用 2.多线程产生的问题,解决的方法, 1.引入线程池的原因:Java并发编程:线程池的使用 2.高并发情况下数据库提交:jdbc事务处理, 理解事务 ...
- CocoaPods本身版本的更新
sudo gem update --system sudo gem install cocoapods pod setup pod --version sudo gem install cocoapo ...
- MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...
- 各公司年资金归集汇总sql
select bd_accid.accidcode, bd_accid.accidname, -- fts_voucher_b.interestdate, -- fts_voucher_b.summa ...
- Hadoop总结篇之三---一个Job到底被提交到哪去了
我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就 ...