首页 > 编程语言 >javaScript(2)

javaScript(2)

时间:2022-11-06 17:24:10浏览次数:44  
标签:function 形参 javaScript NaN var test 实参

运算符

+ 数学运算 字符串拼接

var c = 1 + 1 + 'str' + ( 1 + 1 ) // 2str2
     任何数值类型的值 + 字符串 都是字符串

/ 除法

var 10/2 //5
var 0/0 // NaN     NaN是Number类型
image
image

% 取模、取余
++、-- 自增、自减

a++ 和 ++a 的区别:a++自增前的值,++a是自增后的值,去参与运算

image
image

比较符号 > < >= <= == ===

==相等不看字符类型
===全等于要比较数字类型
NaN不与任何值相等,包括他自己
image

逻辑运算

&& 、 || 、 !
false、undefined、null、0、NaN、"" 假
除上述外都为真
&& 遇到真往后走,遇到假返回假,全为真返回最后一个
|| 遇到假往后走,遇到真返回真,全为假返回最后一个

循环

for(;i;)
for循环中间是判断语句,当i=0时,为false,终止循环

object对象

typeof()能打印出来的类型有: string、number 、Boolean、 undefined、 Object(引用类型 object、array)、function

null代表的是空指针(但其实这算是一个bug)
image
null代表的是空指针
typeof(typeof(1))// string所有typeof的typeof都是string

NaN

意思是不是一个数字(not a number的缩写),NaN是一个警戒值,有特殊用途的常规值,用于指出数字类
型中的错误情况,即执行数学运算没有成功,这个是失败后返回的结果。
typeof(typeof(NaN))// number

类型转换(显示、隐式)
显示:
  1. Number() 转换成数字
  2. parseInt()转换成整型
    parseInt('abc123') //NaN
    parseInt('123abc') //123
    parseInt('1abc23') //1
  3. parseFloat()
    parseFloat('3.1415926').toFixed(2) //3.14
    以二进制为基数转换成16进制
    parseInt('100',2).toString(16) //4
  4. Boolean()
    转换成布尔类型
隐式:
  • a++;
    会先NUmber(a)
  • *、/ 、- 、数字字符串之间比较('1'<'2')
    都会先转换成Number
  • 'a'<'b'
    先转成ascii码
  • +'1'
    会将字符类型转换成数字(Number())
  • isNaN()
    会先把里面数Number一下
    undefined == null //true
    undefined == 0 //false
    null == 0 //false
    image

函数基础与种类

编程原则:高内聚、低耦合 -> 模块的单一责任制

  • 高内聚:内部代码联系度,相关性强
  • 低耦合:抽象出重复的代码,单独成块

函数声明

function 函数名([参数]){ 执行的代码块... }
匿名函数表达式 - 函数字面量
var 函数名 = function([参数]){函数执行语句;}

函数名的命名规则
  • 不能以数字开头
  • 字母 _ $ 数字
  • 小驼峰命名法(根据公司规范)

形实参及映射

点击查看代码
var aa = 1,bb=3;
//形参:占位用
var test = function(a,b){
  console.log(a,b);
}
//实参:实际参数,给形参赋值
test(aa,bb)

形参和实参(arguments)个数可以不同

点击查看代码
//形参:占位用
  var test = function (a, b) {
    console.log(arguments);
	//arguments代表的是实参
  }
  //实参:实际参数,给形参赋值
  test(1, 2, 3)

image

点击查看代码
 var test = function (a, b) {
    a = 3
    console.log(arguments); // [3]
  }
  //实参:实际参数,给形参赋值
  test(1)
因为我实参都没有传b,arguments怎么会有b呢
a 和 arguments[0]是两个东西,但是他们有映射关系
点击查看代码
 var test = function (a, b) {
    b = 3
    console.log(arguments); // [1,undefined]
  }
  //实参:实际参数,给形参赋值
  test(1)

每个函数都要返回,有些没有声明的函数,会隐式返回,添加return;
---return 的作用

  • 终止函数的执行
  • 返回一个值

image

函数参数默认值

es5的版本不能直接给形参赋值

点击查看代码
 function test(a = 2, b) {
 
    console.log(a, b); //3,undefined
  }
  test(3)
  
  
    function test(a = 2, b) {
    console.log(a, b); //2,3
  }
  test(undefined, 3)
作业:

阶乘:

点击查看代码
function jc(n) {
    if (n)
      return n * jc(n - 1);
    return 1;
  }
  console.log(jc(4));

斐波拉契:

点击查看代码
function fabonacci(a, b, n) {
    if (n <= 2)
      return a;
    return fabonacci(a + b, a, n - 1)
  }
  console.log(fabonacci(1, 1, 10));

标签:function,形参,javaScript,NaN,var,test,实参
From: https://www.cnblogs.com/ghx120/p/16860954.html

相关文章