㈠ js编写四则运算函数,使用switch判断运算符号
#include <stdio.h>
int main(int argc, char **argv)
{
double operand1;
double operand2;
char operator[1];
while (1)
{
printf("输入数值和运算符(数值->运算符->数值):");
scanf("%lf%c%lf", &operand1,&operator[0], & operand2);
switch (operator[0])
{
case '+': printf("%.2lf\n", operand1 + operand1);
break;
case '-': printf("%.2lf\n", operand1 - operand2);
break;
case '*': printf("%.2f\n", operand1 * operand2);
break;
case '/': if (operand2 == 0)
{
printf("invalid operand!\n");
break;
}
printf("%.2f\n", operand1 / operand2);
break;
default: printf("unknown operator\n");
break;
}
}
}
㈡ js编写一个函数,计算两个数字的和、差、积、商(要求:使用传参的形式)
/**
**除法函数,用来得到精确的除法结果
**说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
**调用:accDiv(arg1,arg2)
**返回值:arg1除以arg2的精确结果
**/functionaccDiv(arg1,arg2){vart1=0,t2=0,r1,r2;try{
t1=arg1.toString().split(".")[1].length;
}catch(e){
}try{
t2=arg2.toString().split(".")[1].length;
}catch(e){
}with(Math){
r1=Number(arg1.toString().replace(".",""));
r2=Number(arg2.toString().replace(".",""));return(r1/r2)*pow(10,t2-t1);
}
}//给Number类型增加一个div方法,调用起来更加方便。Number.prototype.div=function(arg){returnaccDiv(this,arg);
};/**
**乘法函数,用来得到精确的乘法结果
**说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
**调用:accMul(arg1,arg2)
**返回值:arg1乘以arg2的精确结果
**/functionaccMul(arg1,arg2){varm=0,s1=arg1.toString(),s2=arg2.toString();try{
m+=s1.split(".")[1].length;
}catch(e){
}try{
m+=s2.split(".")[1].length;
}catch(e){
}returnNumber(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}//给Number类型增加一个mul方法,调用起来更加方便。Number.prototype.mul=function(arg){returnaccMul(arg,this);
};/**
**减法函数,用来得到精确的减法结果
**说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
**调用:accSub(arg1,arg2)
**返回值:arg1加上arg2的精确结果
**/functionaccSub(arg1,arg2){varr1,r2,m,n;try{
r1=arg1.toString().split(".")[1].length;
}catch(e){
r1=0;
}try{
r2=arg2.toString().split(".")[1].length;
}catch(e){
r2=0;
}
m=Math.pow(10,Math.max(r1,r2));//lastmodifybydeeka//动态控制精度长度
n=(r1>=r2)?r1:r2;return((arg1*m-arg2*m)/m).toFixed(n);
}//给Number类型增加一个mul方法,调用起来更加方便。Number.prototype.sub=function(arg){returnaccMul(arg,this);
};/**
**加法函数,用来得到精确的加法结果
**说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
**调用:accAdd(arg1,arg2)
**返回值:arg1加上arg2的精确结果
**/functionaccAdd(arg1,arg2){varr1,r2,m,c;try{
r1=arg1.toString().split(".")[1].length;
}catch(e){
r1=0;
}try{
r2=arg2.toString().split(".")[1].length;
}catch(e){
r2=0;
}
c=Math.abs(r1-r2);
m=Math.pow(10,Math.max(r1,r2));if(c>0){varcm=Math.pow(10,c);if(r1>r2){
arg1=Number(arg1.toString().replace(".",""));
arg2=Number(arg2.toString().replace(".",""))*cm;
}else{
arg1=Number(arg1.toString().replace(".",""))*cm;
arg2=Number(arg2.toString().replace(".",""));
}
}else{
arg1=Number(arg1.toString().replace(".",""));
arg2=Number(arg2.toString().replace(".",""));
}return(arg1+arg2)/m;
}//给Number类型增加一个add方法,调用起来更加方便。Number.prototype.add=function(arg){returnaccAdd(arg,this);
};
㈢ 求一个JS对时间运算的函数,最好用时间戳
/**
* 获取指定时间戳n小时之前的时间
* @current {Timestamp} 时间戳,精确到毫秒
* @n {Number} 要减去的小时
* @Return {String} 格式化后的时间
*/
var parser = function (current, n) {
if (arguments.length < 2)
throw new Error("缺少参数!");
if (current.constructor !== Number || n.constructor !== Number)
throw new Error("参数类型错误");
// 计算n小时之前的时间戳
n = current - n * 3600 * 1000;
// 如果计算出的时间小于0,则返回传入的时间
if (current < 0)
n = current;
// 获取年月日时间
n = new Date(n);
n = {
year: n.getFullYear(),
month: n.getMonth() + 1,
day: n.getDate(),
hour: n.getHours(),
minute: n.getMinutes(),
second: n.getSeconds()
};
// 格式化时间
var fill = function (num) {
return (num < 10 ? '0' + num : num);
};
n = '{' + n.year + '-' + fill(n.month) + '-' + fill(n.day) + ' ' + fill(n.hour) + ':' + fill(n.minute) + ':' + fill(n.second) + '}';
return n;
}
获取当前时间戳 var current = (new Date()).getTime()
㈣ 用js写一个函数,计算出字符串的长度
//GBK字符集实际长度计算
functiongetStrLeng(str){
varrealLength=0;
varlen=str.length;
varcharCode=-1;
for(vari=0;i<len;i++){
charCode=str.charCodeAt(i);
if(charCode>=0&&charCode<=128){
realLength+=1;
}else{
//如果是中文则长度加2
realLength+=2;
}
}
returnrealLength;
}
//UTF8字符集实际长度计算
functiongetStrLeng(str){
varrealLength=0;
varlen=str.length;
varcharCode=-1;
for(vari=0;i<len;i++){
charCode=str.charCodeAt(i);
if(charCode>=0&&charCode<=128){
realLength+=1;
}else{
//如果是中文则长度加3
realLength+=3;
}
}
returnrealLength;
}
在JS中字符串的长度不分中英文字符, 每一个字符都算一个长度,这跟PHP里的strlen()函数就不太一样。PHP里的strlen()函数根据字符集把GBK的中文每个2累加,把UTF-8的中文字符每个按3累加。主要是为了匹配数据库的长度范围内,比如GBK的数据库某字段是varchar(10),那么就相当于5个汉字长度,一个汉字等于两个字母长度。如果是UTF8的数据库则是每个汉字长度为3。
㈤ javascript中函数是什么意思
( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念。
函数声明:
function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。
函数表达式:
var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。
匿名函数:
function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
函数声明和函数表达式不同之处在于:
一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明。
而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。
二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用。
在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式。
消除了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。
(5)js运算函数扩展阅读
作用:
javascript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉。
根据javascript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”。
“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。
JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。
㈥ js中的函数
好像没有直接的办法,不过一步亦可以搞定:(利用正则表达式+字符串处理函数)<script>
var a = "aaa13bbb22";
alert(parseInt(a.substring(a.search(/\d/))));
</script>
㈦ js如何向函数输入运算符
1.运算符
1.赋值运算符和扩展运算符
1.赋值运算符 =
2.扩展运算符
+=,-=,*=,/=,%=,^=....
ex:
a=a+b;--> a+=b;
a=a+1;--> a++,a+=1,++a
实现两个数字的换位:
a^=b;
b^=a;
a^=b;
2.条件运算符
条件运算符又称三目运算符。
单目(一元)运算符,只需要一个操作数或表达式。
ex:++,--,!
双目(二元)运算符,需要两个操作或表达式
ex:+,-,*,/,%,>,<,>=,<=,==,===,!=,!==,&,|,^,&&,||
三目(三元)运算符,需要三个表达式或操作数。
语法:
条件表达式?表达式1:表达式2;
先判断条件表达式的值,如果条件为true,则执行表达式1,如果条件为false,则执行表达式2。
ex:
从弹出框中输入成绩,如果成绩大于60,则输出及格,否则输出不及格。
练习:
从弹出框中输入成绩:
如果成绩等于100,则输出"奖励1000元",
如果成绩>=90,则输出"奖励100元",
如果成绩>=70,则输出"奖励10元素",
否则,输出"请大家吃饭"。
㈧ js中三角函数sin\cos\tan\cot角度计算
正弦(sin) sinA = a / c sinθ = y / r
余弦(cos) cosA = b / c cosθ = y / r
正切(tan) tanA = a / b tanθ = y / x
余切(cot) cotA = b / a cotθ = x / y
js中计算三角函数用Math.sin()等静态方法,参数为弧度
角度与弧度都是角的度量单位
1弧度时,弧长等于半径,那弧长是半径的倍数就是弧度了
弧度 = 弧长 / 半径
弧长 = 弧度 * 半径
弧长 = (角度 / 360) * 周长
角度 = 弧长 / 周长 = 弧长/(2πr) = 弧度*r/(2πr) = 弧度/(2π)
弧度 = 弧长 / 半径 = [(角度 / 360) * 周长] / 半径 =[ (角度 / 360) * 2πr] / r = 角度 * π / 180
㈨ JS中几种常见的高阶函数
高阶函数:英文叫Higher-order function。JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
一个最简单的高阶函数:
编写高阶函数,就是让函数的参数能够接收别的函数。
下面介绍三个高阶函数:
一、map/rece
如果你读过Google的那篇大名鼎鼎的论文“MapRece: Simplified Data Processing on Large Clusters”,你就能大概明白map/rece的概念。由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果:
1、map():
所以,map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把Array的所有数字转为字符串:
2、rece():
再看rece的用法。Array的rece()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,rece()把结果继续和序列的下一个元素做累积计算,其效果就是:
二、filter
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
可见用filter()这个高阶函数,关键在于正确实现一个“筛选”函数。
回调函数:filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:
三、sort排序算法
因为Array的sort()方法默认把所有元素先转换为String再排序,结果'10'排在了'2'的前面,因为字符'1'比字符'2'的ASCII码小。如果不知道sort()方法的默认排序规则,直接对数字排序,绝对栽进坑里!
幸运的是,sort()方法也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。
㈩ js 常用到的几个数学函数
Visual Basic包含内置或内部抄的函数袭,如算术平方根、余弦函数和字符代码函数。此外,还可以用Function语句编写自己的Function函数过程。函数过程的语法是:
[Private |Public][Static] Function 过程名(声明)[As 类型]
语句
End Function
与子过程一样,函数过程也是一个独立的过程,可以读取参数,执行一系列语句并改变其参数的值。与子过程不同,函数过程可以返回一个值到调用的过程。
一般说来,让较大的语句或表达式的右边包含函数过程名和参数,这就调用了函数。
与变量完全一样,函数过程有数据类型,这就决定了返回值的类型(如果没有As子句,默认的数据类型为变体型)。
给过程名自身赋一个值,就可以返回这个值。函数过程返回一个值时,这个值可以成为较大表达式的一部分。
在Visual Basic中调用函数过程的方法和调用任何内部函数的过程是一样的。
希望我能帮助你解疑释惑。