① 在面試前端開發的時候遇到一個面試題,求解 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年,我自己覺得是列印錯了。如果在現場我估計我會再問一下面試官這里是否不一樣。如果真不一樣,程序里在處理一下就行了
好了,此題完結。