文章图片
下面列出了常见的CoffeeScript面试问题列表:
1)定义CoffeeScript。
CoffeeScript是一种轻量级的编程语言, 可以编译为JavaScript。它比JavaScript提供更好和更一致的语法, 并且仍包含JavaScript的灵活性和其他优点, 因此日渐流行。
2)谁是CoffeeScript的创始人?
CoffeeScript是由Jeremy Ashkenas在2009年12月设计和开发的。
3)CoffeeScript发明的主要目的是什么?
CoffeeScript的主要目的是消除JavaScript的所有粗糙之处, 并提供一种流畅的JavaScript编程方式。使用CoffeeScript, 我们还可以创建类并继承它们。
4)哪种语言对CoffeeScript的影响最大?
Python, Ruby和Haskell启发了CoffeeScript。它采用了它们的语法和编码样式, 这使其独特而有用。
5)CoffeeScript要记住哪些基本规则?
你必须记住CoffeeScript的以下规则:
- 你不需要在CoffeeScript中使用花括号。
- 无需括号即可定义具有参数的函数。
以下列出了CoffeeScript与JavaScript相比的优点:
- 更少的代码:CoffeeScript的程序包含的代码比同一个JavaScript程序少。它可以帮助你为同一任务使用更少的代码。
- 轻量级:CoffeeScript是轻量级的小型编程语言。它包含非常轻巧的附加组件, 例如Ruby字符串插值。
- 可靠:CoffeeScript是一种编程语言, 可以安全地编写动态程序。
- 易读且易于维护:CoffeeScript为操作员提供别名, 使代码易于理解和管理。
- 继承:JavaScript不支持基于类的继承, 而CoffeeScript为程序员提供基于类的继承以实现继承。
- 否var关键字:在javascript中, 我们必须使用var关键字来创建变量, 而在CoffeeScript中, 则无需使用var关键字来创建变量。
以下是在Javascript上使用CoffeeScript的一些缺点:
- 对空格敏感:CoffeeScript对空格非常敏感。编程时应小心使用适当的缩进。如果程序员不能保持适当的缩进, 那么整个代码可能会出错。
- 所需的编译时间:CoffeeScript需要首先编译为javascript, 这需要花费一些时间和计算机的精力。每次使用JavaScript代码编译CoffeeScript来在浏览器中执行其功能时。
在JavaScript中, 需要使用var关键字声明一个变量并对其进行初始化。但是, 在CoffeeScript中, 我们可以通过将值分配给文字来直接创建变量, 例如:-
名称=变量值
9)说明CoffeeScript中的功能。
CoffeeScript函数的语法比JavaScript函数更直接。在CoffeeScript中, 你必须定义函数表达式。在CoffeeScript中未使用function关键字。取而代之的是, 你必须使用箭头符号(-> )。
10)CoffeeScript为什么越来越受欢迎?
CoffeeScript是Github中第11大最受欢迎的语言。它的主要目的是在不编写大量代码的情况下生成有效的JavaScript。它还着重于通过简单的语法突出显示JavaScript的所有功能方面。
CoffeeScript受欢迎的原因如下:
- 与JavaScript相比, 在CoffeeScript中进行编程时所??需的编码很少。
- CoffeeScript包含JavaScript的所有有用功能。
- 你可以与CoffeeScript无缝使用任何现有的JavaScript库。
- CoffeeScript在编译期间包括一个附加的编译步骤。
- 该语言只有少数资源可用。
在CoffeeScript中, 需要一个工具来将CoffeeScript代码转换/转换为JavaScript。该工具称为编译器。
13)CoffeeScript中的splat是什么?
Splat是用于var参数的(… )运算符的术语。分散的参数可以在标准参数之前, 之后或之间出现。
例如, (首先, 休息..)
14)CoffeeScript中的克隆功能有什么用?
在CoffeeScript中, 克隆功能用于克隆或复制对象的实例。创建一个clone()方法, 该方法返回带有复制值的新实例。
例如:
clone =(obj)-> 如果obj为null或typeof(obj)不是” object” , 则返回obj temp = obj键的新obj.constructor()temp [key] = clone(obj [key])temp
15)解释CoffeeScript中的类方法?
在CoffeeScript中, 类对象存储在对象本身中, 而不是存储在对象原型中。它节省了内存, 并为存储类级别的值提供了一个中心位置。
16)如何用另一个值替换一部分字符串?
你可以使用正则表达式来匹配字符串的一部分并将其替换为另一个值。
17)通过赋值和克隆功能复制对象有什么区别?
通过赋值和克隆功能复制对象之间的主要区别在于它们处理引用的方式。分配仅复制对象的引用, 而克隆功能创建一个全新的对象。
18)CoffeeScript如何插入字符串?
CoffeeScript中插值的概念与Ruby相同。 CoffeeScript的大多数表达式在#{… }插值语法内有效。
19)布尔如何与CoffeeScript一起使用?
在CoffeeScript中, ” True” 通常表示为” On” 或” Yes” , 而” False” 表示为” Off” 或” No” 。
20)如何在CoffeeScript中创建和删除缺少的函数?
你可以使用现有的赋值运算符(?=)创建和删除CoffeeScript中缺少的函数。
21)是否可以将参数绑定到CoffeeScript中的属性?
是的, 你可以使用@简写将参数绑定到CoffeeScript中的属性。它也可以用来定义类函数。
22)如何在CoffeeScript中映射数组?
你可以通过将map()与CoffeeScript中的匿名函数一起使用来映射对象中的数组。对于
通过简单的映射, 列表理解就更有用了, 因为CoffeeScript直接支持列表理解。
23)如何使用数组交换变量?
你可以使用CoffeeScript的解构分配语法来使用数组交换变量。它允许交换两个值, 而无需使用临时变量。
24)为什么在CoffeeScript中使用基本运算符?
由于以下原因, 在CoffeeScript中使用了现有运算符:
- 检查变量是否存在。
- 用于条件分配。
- 用于功能链接。
CoffeeScript提供了称为字符串插值的功能, 用于在字符串中包含变量。 Ruby编程语言激发了这一功能。
Syntax: String = "This is a string #{variable_name}"
字符串插值是使用上述语法完成的。使用双引号” ” , #号和两个大括号{}。
例如:
name = "Raju"
age = 26
message ="Hello #{name} your age is #{age}"
console.log message
On compiling the above coffeeScript code compiler will generate the corresponding javascript:
// Generated by CoffeeScript 1.10.0
(function() {
var age, message, name;
name = "Raju";
age = 26;
message = "Hello " + name + " your age is " + age;
console.log(message);
}).call(this);
26)CoffeeScript中的字符串连接是什么?怎么做?
在CoffeeScript中, 我们可以通过在两个字符串之间使用+运算符轻松地连接两个字符串。
例如:
new_string = "Hello how are you "+"Welcome to srcmini".
console.log new_String
On compiling the above CoffeeScript code compiler will generate corresponding javascript code as follows:
// Generated by CoffeeScript 1.10.0
(function() {
var new_string;
new_string = "Hello how are you " + "Welcome to Tutorialspoint";
console.log(new_String);
}).call(this);
27)CoffeeScript / javaScript中的字符串对象是什么?解释其方法。
javascript的字符串对象可帮助你处理一系列字符。字符串对象提供了各种方法来执行字符串中的各种操作。
我们可以在CoffeeScript代码中使用javascript库。因此, 我们可以在javascript中使用字符串对象的所有方法。
以下是一些字符串对象的方法:
- charAt():此方法返回字符串对象给定索引值处的字符。
- charCodeAt():此方法返回给定索引处字符的Unicode值。
- concat():此方法组合两个子字符串并返回一个超字符串。
- indexOf():此方法返回具有指定值的第一个匹配项的调用字符串的索引, 如果未找到则返回-1。
- lastIndexOf():此方法返回最后一次出现指定值的调用字符串的索引, 如果未找到则返回-1。
- localeCompare():此方法返回一个数字, 该数字表示参考字符串在排序顺序之前还是之后或与给定字符串相同。
- match():此方法用于将正则表达式与字符串进行匹配。
- search():此方法执行搜索以查找指定字符串中的正则表达式之间的匹配项。
- slice():提取字符串对象的节并返回一个新的字符串对象。
- split():通过将字符串对象分成子字符串, 将字符串对象拆分为字符串数组。
- substr():此方法从指定位置开始通过指定数量的字符返回调用字符串。
- toLocaleLowerCase():在遵守当前语言环境的同时, 将调用字符串转换为小写。
- toLocaleUpperCase():在遵守当前语言环境的同时, 将调用字符串转换为大写。
- toLowerCase():以小写形式返回调用字符串。
- ToUpperCase():以大写形式返回调用字符串。
CoffeeScript提供了称为splat的功能, 该功能用于将多个参数传递给函数。
通过在变量名称后放置三个点, 可以在函数中使用splats。
例如:
indian_team = (first, second, others...) ->
Captain = first
WiseCaptain = second
team= others
console.log "Captain: " +Captain
console.log "Wise captain: " +WiseCaptain
console.log "Other team members: " +team#Passing 4 arguments
console.log "############## Four Players ############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma"#Passing 6 arguments
console.log "############## Six Players ############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan"#Passing full squad
console.log "############## Full squad #############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane"
以上示例的说明:
【史上最全的CoffeeScript面试题和答案合集】在上述情况下, 多个参数被传递给该函数。通过在函数indian_team的参数列表之后放置三个点。在第一遍中, 我们已将四个参数传递给函数, 在第二遍中, 我们已将六个参数传递给函数, 而在最后一遍中, 我们将完整小队的名称传递给了函数。
29)给出一个示例, 以演示在CoffeeScript中带有尾部参数的splats的用法。另外, 请解释。
带尾部参数的splats指代放置在splat参数之后的参数。
例如:
indian_team = (first, second, others...., last) ->
Captain = first
WiseCaptain = second
team= others
Wicketkeeper =last
console.log "Captain: " +Captain
console.log "Wise captain: " +WiseCaptain
console.log "Wicket keeper is:"+last
console.log "Other team members: " +teamsquad = [
"Mahendra Singh Dhoni"
"Virat Kohli"
"Shikhar Dhawan"
"Rohit Sharma"
"Gurkeerat Singh Mann"
"Rishi Dhawan"
"R Ashwin"
"Ravindra Jadeja"
"Axar Patel"
"Jasprit Bumrah"
"Umesh Yadav"
"Harbhajan Singh"
"Ashish Nehra"
"Hardik Pandya"
"Suresh Raina"
"Yuvraj Singh"
"Ajinkya Rahane"
]
在上面的使用splats尾部的示例中, 我们在indian_team函数的参数列表中放置了一个附加参数。
30)举一个例子来说明理解与散点图的使用。
在函数内, 我们还可以使用理解来迭代splat的元素, 如以下示例所示。将此代码保存在名称为splats_comprehensions.coffee的文件中
indian_team = (first, second, others...) ->
Captain = first
WiseCaptain = second
team= others
console.log "Captain: " +Captain
console.log "Wise captain: " +WiseCaptain
console.log "Other team members:: "
console.log member for member in otherssquad = [
"Mahendra Singh Dhoni"
"Virat Kohli"
"Shikhar Dhawan"
"Rohit Sharma"
"Gurkeerat Singh Mann"
"Rishi Dhawan"
"R Ashwin"
"Ravindra Jadeja"
"Axar Patel"
"Jasprit Bumrah"
"Umesh Yadav"
"Harbhajan Singh"
"Ashish Nehra"
"Hardik Pandya"
"Suresh Raina"
"Yuvraj Singh"
"Ajinkya Rahane"
]indian_team squad...
31)解释可以在CoffeeScript中使用的各种数学函数。
我们可以在CoffeeScript代码中使用javascript库。因此, 我们可以在javascript中使用所有数学对象方法。
以下是math对象中存在的一些数学函数:
\
- abs():此函数返回数字的绝对值。
- acos():此函数返回数字的反余弦(以弧度表示)。
- asin():此函数返回数字的反正弦(以弧度为单位)。
- atan():此函数返回数字的反正切(以弧度为单位)。
- atan2():此函数返回其参数商的反正切值。
- ceil():此函数返回大于或等于给定数字的最小整数。
- cos():此函数返回给定数字的余弦。
- exp():此函数返回EN, 其中N是自变量, E是欧拉常数(自然对数的底数)。
- floor():此函数返回小于等于该数字的最大整数。
- log():此函数返回数字的自然对数(以E为底)。
- max():此函数返回零个或多个数字中的最大值。
- min():此函数返回零个或多个数字中的最小值。
- pow():此函数返回给定数字的基本指数。
- random():此函数返回0到1之间的伪随机数。
- round():此函数返回四舍五入到最接近整数的数字的值。
- sin():此函数返回给定数字的正弦值。
- sqrt():此函数返回指定数字的平方根。
- tan():此函数返回指定数字的切线。
Java OOP面试问题 |
Java字符串和异常问题 |
JDBC面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
Java多线程问题
Java Collection面试题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
推荐阅读
- 史上最全的Framework7面试题和答案详解
- 最新XQuery面试题和答案精品推荐
- XPath面试宝典(问题和答案合集)
- 面试必备!常见SASS面试题合集
- 推荐哦!XML面试题和答案大汇总
- XSLT面试题合集和答案推荐
- Dojo面试题和答案大汇总都在这里
- TCP/IP协议之四TCP协议(上)—理论+实践给你讲清楚
- MySQL—— 数据库索引 (索引是什么(B树,B+树))