⑴ JS 语法看不懂 能否详解
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>查找最大的数。</p>
<pid="demo"></p>
<script>
//调用查询最大值的函数,并将返回值赋给x
x=findMax(1,123,500,115,44,88);
//查询最大值的函数
functionfindMax(){
//定义i,查询数据中第1个值赋给max
vari,max=arguments[0];
//如果查询数据只有1个,则返回max值
if(arguments.length<2)returnmax;
//遍历查询的数据
for(i=0;i<arguments.length;i++){
//遍历中当前的数据和max值对比,如:123>1
if(arguments[i]>max){
//对比成立,则将max的值从1变为123,然后下一轮变成123和500对比...依次进行
max=arguments[i];
}
}
//取得最终最大的那个数据,然后作为返回值赋给最上面一行的x
returnmax;
}
//最终结果插入到p标签中
document.getElementById("demo").innerHTML=x;
</script>
</body>
</html>
⑵ javascript(js) join函数如何使用方法介绍
数组对象本身提供了许多方法用于对象本身的操作,join是其中一个方法。 格式: objArray.join(seperator) 用途: 以seperator指定的字符作为分隔符,将数组转换为字符串,当seperator为逗号时,其作用和toString()相同。 例子: 比如我们有个字符串a,b,c我们要输出为a,b,c这样的格式,那么我们可以这样: var a = [a,b,c]; document.write(a); 若使用join,那必须得这样: var a = [a,b,c].join(,); document.write(a); 如果你说你要直接输出abc,而不输出a,b,c,那使用join再合适不过。 var a = [a,b,c].join(); document.write(a); 演示: </head </html [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
⑶ JavaScript核心语法有哪些
如果有一定的编程基础,JavaScript的语法相当简单。它是C风格的语言,所以很多语法和C,C++,Java相似。如细节上,JavaScript对大小写敏感:关键字,变量,函数名都要注意这个问题。但是语句间不同部分的空白符号会被忽略。如换行符,制表符,空格等。JavaScript的注释也和C相似:用“//”进行单行注释,“/**/”进行多行注释。JavaScript在声明变量的时候和C有着很大的不同,C语言声明时必需明确数据类型,而JavaScript的所有变量都可以用var关键字声明。如:var total; var cnt等,但语句都以分号结束。在JavaScript中语句的默认执行方式是顺序执行,也可以通过学习if,while,for等控制语句来改变程序的逻辑和执行方式。若程序稍复杂,我们也可以使用函数对代码进行拆分。
所以如果你想对JavaScript的核心语法有一定的了解,那么了解它的数据类型,变量,控制语句,函数是必不可少的。我看了秒秒学上一个叫《JavaScript核心语法》的微课程,里面讲解得挺好的,可以去看看。
⑷ js中的展开语法/剩余语法
1.等价于Function.apply(),传入数组,会被迭代为函数的参数
2.在构造时(此时传值不同于apply,因为它调用的是Call而不是Construct)
3.构造字面量数组/对象
⑸ js数组遍历的常用的几种方法以及差异和性能优化
<script type="text/javascript">
/*对比:
1、map速度比foreach快
2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,foreach返回undefined
3、map因为返回数组所以可以链式操作,foreach不能
4, map里可以用return ,而foreach里用return不起作用,foreach不能用break,会直接报错*/
/*方法一:*/
var arr1 = [1, 2, 3, 4, 5, 6];
for(var i = 0, len = arr1.length; i < len; i++) { //优化性能处理
console.log(arr1[i], 'for遍历出来的数据'); //每个item 1,2,3,4,5,6
}
/*方法二:*/
/*forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身*/
var arr2 = [{
name: 'bob',
age: 20
},
{
name: 'tom',
age: 18
},
{
name: 'sos',
age: 19
}
]
arr2.forEach((val, i) => { //没有返回值的,对原来数组也没有影响
console.log(val, '遍历出来的每个obj')
});
/*方法三:*/
var fruits = [1, 2, 3, 4, 5, 6, 7, 8];
let arr = fruits.map((item, index) => {
console.log(item, 'top')
console.log(index, 'top')
return item * 8
})
console.log(arr, 'newarr') //[8, 16, 24, 32, 40, 48, 56, 64] "newarr"
var a = fruits.indexOf("Apple", 4);
console.log(a)
//for 和 forEach都是普通循环,map 带返回值并且返回一个新数组;
/*
*当前元素的值,当期元素的索引值,当期元素属于的数组对象;
语法:array.map(function(currentValue,index,arr), thisValue)
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
* */
/*方法四:*/
/*兼容写法:
不管是forEach还是map在IE6 - 8 下都不兼容( 不兼容的情况下在Array.prototype上没有这两个方法), 那么需要我们自己封装一个都兼容的方法:*/
/**
* forEach遍历数组
* @param callback [function] 回调函数;
* @param context [object] 上下文;
*/
Array.prototype.myForEach = function myForEach(callback, context) {
context = context || window;
if('forEach' in Array.prototye) {
this.forEach(callback, context);
return;
}
//IE6-8下自己编写回调函数执行的逻辑
for(var i = 0, len = this.length; i < len; i++) {
callback && callback.call(context, this[i], i, this);
}
}
/**
* map遍历数组
* @param callback [function] 回调函数;
* @param context [object] 上下文;
*/
Array.prototype.myMap = function myMap(callback, context) {
context = context || window;
if('map' in Array.prototye) {
return this.map(callback, context);
}
//IE6-8下自己编写回调函数执行的逻辑var newAry = [];
for(var i = 0, len = this.length; i < len; i++) {
if(typeof callback === 'function') {
var val = callback.call(context, this[i], i, this);
newAry[newAry.length] = val;
}
}
return newAry;
}
</script>
⑹ JS 语法相关
应该是
$(function(){
}
)(); /*后面少了两个括号*/
jQuery匿名函数,这段函数使用了javascript立即运行的匿名函数语法。