① 在面试前端开发的时候遇到一个面试题,求解 var a =10; (function(){ console.log(a); var a=100; })
vara=10;
(function(){
console.log(a);
vara=100;
})();
结果:输出undefined
解释:
function中有var a = 100;
声明会提升到function最开头,但赋值发生在最后。
上面的代码等价于:
vara=10;
(function(){
vara;
console.log(a);
a=100;
})();
打印a的时候,a并没有在function内赋值,所以是undefined
② sql server如何用print语句输出查询结果
1、可以使用如下程序将元组的多个属性输出
DECLARE @t1 NVARCHAR(100) --声明一个变量,接收查询结果值。
SELECT @t1=com_name FROM com WHERE cust_id='20100001' --查询
PRINT @t1 --输出结果值。
SELECT @t1=com_name FROM com WHERE cust_id='1405892'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='569454'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='647328'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='1221889'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='1255607'
PRINT @t1
2、--向上边的批量select查询,用print输出后,在消息中,还能查看结果。如果不用print,就需要一个一个的复制查询结果。
3、--上边的语句,是在excel和word中拼接和替换值,得到的批量查询语句。
(2)前端32输出结果扩展阅读:
1、不带输出项的print即为输出一个空行,如果之前的print语句输出项的最后用“,”或“;”,则表示其输出是在同一行上。其后面的空的print语句用来消除前面的print语句一直在同一行上输出的效果,使其后面的输出是在下一行。
Print()
功能
以当前字体在打开的打印作业中打印一行或多行文本。
语法Print(printjobnumber,{tab1,}string{,tab2})
例如用在编程中:
定义一个整型数组,将50个随机的两位正整数从下标1开始放入该数组中,求出该数组中具有偶数值的偶数下标元素之和,同时输出该数组中所有元素的值,每行输出10个值。
dim a(50) asinteger
dim i,s asinteger
randomize
s=0
for i=1 to 50
a(i)=int(rnd()*99)+1
if a(i) mod 2=0 then s=s+i
next i
print "s=";s
for i=1 to 50
print a(i);
if i mod 10=0 then print
next i
2、SQL中Print语句用于调试,所以,它输出的内容属于调试信息,类似于出错信息。
3、在不同的编程中,获取调试信息的,方法不同。此外,很少有人用Print作正常的输出,当然,在调试过程中用除外。要输出时,一般用Select语句来得方便一些。多组信息需要输出时,先生成一个临时表,然后向临时表添加,最后把总的临时表数据向前端推送即可。
③ Java怎么将后台运行结果输出在前端页面中idea
idea只是java编程工具,如果使用springmvc框架,java后台查询出结果只需要返回给前端json数据库就行,前端利用js操作得到的json数据显示到网页上面。
④ 前端开发——什么是数组
定义数组的两种方式
vara=new Array()var a=[ ]
数组的长度
vara=["a","b","e"];console.log(a.length)
length是数组的长度 输出结果为 3
添加元素
vara=["a","b","c","d"];a.push("e")
push方法是向数组中最后一个位置添加元素
a.unshift("f");
unshift方法是向数组中第一个位置添加元素
a.splice(a,0,"g")
splice方法可以在数组指定位置添加元素并且可以删除元素,数字2代表位置,数字0代表删除元素的个数,这里表示在元素b后面加一个元素g
删除元素
vara=["a","b","c","d"]; a.pop();
pop()方法删除数组中的元素,删除的是最后一个;
a.shift()
shift方法删除数组中的元素,删除的是第一个;也可以用splice删除,并且可以删除多个元素
数组转换
vara=["a","b","c"];vara1=a.join("#");
join是把数组里的元素变成字符串,用“#”隔开
var a="w,e,g";vara1=a.split(",");
split是把字符串变成数组,数组用“,”隔开
以上就是关于数组的分享,更多前端内容请 点击关注
⑤ 2019阿里前端面试题
干开发也有不少年头了,其实每个开发人员应该都有总结和写技术点的习惯,俗言说得好“好记性不如一个烂笔头”。
我是一枚女程序猿,很少发文章,并且我深知这是不对的,不管好与坏分享出来大家一起讨论,总会把不好的变成好的,窄路变成宽路。哎,可能个人使然,但是发表出来的还是很少,都是在自己的工作笔记里每次记录着技术心得和一些总结。总觉得发表出来万一不好,被人取笑了怎么办。总之是一个爱多想的女程序员。
最近我以前一个同事在找工作,她面试了阿里,然后跟我聊了聊,说让我多发表自己的文章,建立自己的社区,最好再多参与一些开源项目或者在git上多建一些自己的项目。这话我以前也听过,但是就是执行上不彻底啊。
这不,我现在必须把自己以前写好的或者接下来的每一点技术总结也好 经验总结也好,都想写出来,就当不为别人看,为自己也行!
话不多说了,她给我发了一道她面试阿里的题。我自己做了做。这是我目前想到的思路和写法。欢迎有更好更优的方案发出来。我也可以学习。谢谢~
题目:
筛选笔试题 (请在半小时内完成):
var arr = [
{name:'小米1', value: 1, type: 2, date: '2018-06-07T08:00:01.589Z' },
{name:'锤子T1', value: 1, type: 2, date: '2018-06-07T08:10:01.589Z' },
{name:'小米2', value: 1, type: 4, date: '2018-06-07T20:00:01.589Z' },
{name:'小米2', value: 4, type: 4, date: '2018-06-07T20:10:21.189Z' },
{name:'小米4', value: 1, type: 4, date: '2018-06-07T08:00:01.560Z' },
{name:'小米4', value: 2, type: 4, date: '2018-06-07T08:10:31.584Z' },
{name:'小米6', value: 1, type: 3, date: '2018-06-07T08:00:01.589Z' },
{name:'小米5s',value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
{name:'锤子T2', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
{name:'锤子T1', value: 4, type: 4, date: '2018-06-07T08:06:01.589Z' },
{name:'魅蓝note5', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
{name:'魅蓝note2', value: 5, type: 4, date: '2018-06-02T08:07:01.589Z' },
{name:'魅蓝note2', value: 6, type: 4, date: '2018-06-07T08:00:01.589Z' },
{name:'魅蓝note3', value: 1, type: 4, date: '2018-06-05T08:00:01.589Z' },
{name:'魅蓝note', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },
{name:'oppor9', value: 7, type: 4, date: '2018-06-04T08:04:01.588Z' },
{name:'华为p9', value: 1, type: 4, date: '2018-06-02T08:00:01.577Z' },
{name:'华为p9', value: 2, type: 4, date: '2018-06-07T08:00:01.110Z' },
{name:'华为p10', value: 1, type: 1, date: '2018-06-07T08:00:01.534Z' }
];
/**
* 请用您认为最优化的方式,将arr中的type为4的数据过滤出来,
* 然后按相同的 name + date(按天)合并value(value累加),
* 然后按 value 降序(从大到小)排序,
* 最后每行按照 "${name},${本地日期},售出${sum(value)}部" 的格式,如:"小米2,2017年06月08日,售出5部", 打印(console.log)出来。
* 可以使用第三方js库,可以使用es6。
* 请在半小时内完成。
要求最后输出结果样例如下:
oppor9,2017年06月04日,售出7部
魅蓝note2,2017年06月07日,售出6部
魅蓝note2,2017年06月02日,售出5部
小米2,2017年06月08日,售出5部
......
*/
function printArray(arr){
}
我的解答:
function printArray(arr){
const res = arr.filter(function(item, index, arr){
item.date = item.date.split('T')[0]
return item.type === 4
})
console.log(res)
const newArr = []
const temp = {}
for(const i in res) {
const key = `${res[i].name}@${res[i].date}`
if (temp[key]) {
temp[key] += res[i].value
} else {
temp[key] = res[i].value
}
}
console.log(temp)
for (const key in temp) {
const tempObj = {}
tempObj.name = key.split('@')[0]
tempObj.date = key.split('@')[1]
tempObj.value = temp[key]
newArr.push(tempObj)
}
console.log(newArr)
function compare(prop) {
return function(a, b){
const value1 = a[prop]
const value2 = b[prop]
return value2 - value1
}
}
newArr.sort(compare('value'))
console.log(newArr)
newArr.forEach((item, index) => {
const printStr = `${item.name},${item.date.split('-')[0]}年${item.date.split('-')[1]}月${item.date.split('-')[2]}日,售出${item.value}部`
console.log(printStr)
})
}
printArray(arr)
我有注意到时间那有点差异,题目数组里给的是2018,让最后打印出来是2017年,我自己觉得是打印错了。如果在现场我估计我会再问一下面试官这里是否不一样。如果真不一样,程序里在处理一下就行了
好了,此题完结。