JS常见知识点

1、写一个按照下面方式调用都能正常工作的 sum 方法

console.log(sum(2,3)); // Outputs 5
console.log(sum(2)(3)); // Outputs 5

解决方案

function sum() {
  var fir = arguments[0];
  if (arguments.length === 2) {
    return arguments[0] + arguments[1]
  } else {
    return function (sec) {
      return fir + sec;
    }
  }
}
sum(2)(5)

2、下面的代码会输出什么?为什么?

var arr1 = "john".split(‘‘); j o h n
var arr2 = arr1.reverse(); n h o j
var arr3 = "jones".split(‘‘); j o n e s
arr2.push(arr3);
console.log("array 1: length=" + arr1.length + " last=" + arr1.slice(-1));
console.log("array 2: length=" + arr2.length + " last=" + arr2.slice(-1));
  • reverse() 会改变数组本身,并返回原数组的引用。
  • slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

    stringObject.slice(start,end);
    arrayObject.slice(start,end);
    • start和end如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 

3、下面的代码会输出什么?为什么?

1 console.log(1 + "2" + "2");
2 console.log(1 + +"2" + "2");
3 console.log(1 + -"1" + "2");
4 console.log(+"1" + "1" + "2");
5 console.log( "A" - "B" + "2");
6 console.log( "A" - "B" + 2);

  我们先来看几条规则:

  • 数字字符串之前存在数字中的正负号(+/-)时,会被转换成数字

    console.log("类型:"+(typeof ‘3‘)+" 内容为:"+‘3‘)      //类型:string 内容为:3
    console.log("类型:"+(typeof +‘3‘)+" 值为:"+(+‘3‘))    //类型:number 值为:3
    console.log("类型:"+(typeof -‘3‘)+" 值为:"+(-‘3‘));  //类型:number 值为:-3
  • (字符串 + 数字) 或者 (数字+字符串) ,都得到一个字符

    console.log(5 + ‘A‘);    //5A
    console.log(‘A‘ + 5);    //A5
    console.log(NaN + ‘A‘); //NaNA
    console.log(‘A‘ + NaN); //ANaN
  • 对于运算结果不能转换成数字的,将返回 NaN

    console.log(‘a‘ * ‘sd‘); //NaN
    console.log(‘A‘ - ‘B‘); // NaN
  • 其他的一些例子

    console.log(‘-3‘ - 2 + 1);    //-4   number类型
    console.log( 3 + ‘-2‘ + 1);   //3-21 string类型
    console.log( 3 - ‘-2‘ + 1);   //6    number类型
  • 也许我们已经有答案了

    1 console.log(1 + "2" + "2");      // "122"
    2 console.log(1 + +"2" + "2");     // "32"
    3 console.log(1 + -"1" + "2");     // "02"
    4 console.log(+"1" + "1" + "2");   //"122"
    5 console.log( "A" - "B" + "2");  // "NaN2"
    6 console.log( "A" - "B" + 2);    //NaN

    (未完待续)

时间: 2024-10-13 06:22:25

JS常见知识点的相关文章

js常见知识点3.面向对象之继承、设计模式

一.面向对象的三大特征 建议回复: 封装:屏蔽内部细节.调用外部接口实现对应功能(函数调用) 继承:子类继承父类中的属性和方法 多态(js中不存在多态的概念) 二.继承 建议回复: 继承:子类继承父类中的属性和方法 , 这些属性和方法在子类中不需要实现过程 继承的种类:  单继承:一个子类只拥有一个父类 多继承:一个子类可以拥有多个父类 三.继承的方式及实现过程 建议回复: 1.继承方式一.通过改变构造函数(父类)的执行环境 ---在子类中添加一个特殊属性,这个属性值指向父类

js常见知识点2.面向对象相关

一.对象的概念 建议回复: 对象是一个整体,对外提供一些功能. 一切具有属性和方法的事物. 一切具有本质特征和行为的物质. 数据类型: 所有的基本数据类型都没有数据和方法. 所有的对象数据类型都有属性和方法. 函数和方法的区别: 方法属于函数,函数包含方法.       比如dancer是一个未婚男士,那他就是一个函数,人人都可以约他(调用),但是如果他结婚了,就是某个对象的方法了,只有他的对象能调用他. 二.类的概念 建议回复:

js常见事件

1.onblur:(使用在表单元素中,当元素失去焦点的时候执行) 2.onchange:(使用在表单元素中,当某些东西改变是执行) 3.onclick:(鼠标点击一个元素时执行) 4.ondblclick:(鼠标双击一个元素时执行) 5.onfocus:(使用在表单元素中,当元素获得焦点时执行) 6.onkeydown: (按下某个按键时执行) 7.onkeypress:(按下和释放某个按键时执行) 8.onkeyup:(释放某个按键时执行) 9.onload:(在body标签中使用,载入页面的

js基础知识点收集

js基础知识点收集 js常用基本类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); // number console.log(typeof('abc')); // string console.log(typeof(true)); // boolean console.log(typeof([])); // object console.log(typeof(function (

js基础知识点总结

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

js常见执行方法

$(document).load(); 当web页面以及其附带的资源文件,如CSS,Scripts,图片等,加载完毕后执行此方法.常用于检测页面(及其附带资源)是否加载完毕. $(document).ready();当页面DOM对象加载完毕,web浏览器能够运行JS时,此方法即被触发.如果你想尽快执行JS,可以使用此方法.[在html的头部的script标签中的,不处于ready()中的JS代码将早于ready()执行] $(document).unload();此事件在停止浏览页面的时候触发,

JS常见事件以及函数

1.js enter键激发事件 document.onkeydown = function (e) {            if (!e) e = window.event;            if ((e.keyCode || e.which) == 13) {                $("#btnSubmit").click();            }        } 2. JS常见事件以及函数

iOS 常见知识点(三):Lock

iOS 常见知识点(一):Runtime iOS 常见知识点(二):RunLoop 锁是最常用的同步工具.一段代码段在同一个时间只能允许被有限个线程访问,比如一个线程 A 进入需要保护代码之前添加简单的互斥锁,另一个线程 B 就无法访问,只有等待前一个线程 A 执行完被保护的代码后解锁,B 线程才能访问被保护代码. iOS 中的八大锁 NSLock @protocol NSLocking - (void)lock; - (void)unlock; @end @interface NSLock :

JS常见面试题目 选择的第几个radio,name一样都叫radiogroup

<html> <head> <script language="javascript"> function parse() { } </script> </head> <body> <form onsubmit = "return parse()"> <input name="radioGroup" type="radio"/> &