30、關于return語句
function foo(a,b){
return
a+b;
}
var t=foo(3,4);
console.log(t)//undefined
29、關于自執行匿名函數
for(var i=0;i<3;i++){
setTimeout((function(a){
console.log(a);
})(i),0);
}
//0 ,1 , 2
28、來自網易筆試的一道題目:下面表明可以重複綁定的,并且不會彈出錯誤:
var dd=document.getElementById("dd");
for(var i=0;i<3;i++){
dd.onclick=function(){
console.log(1);
}
}
27、關于未定義的變量
var ttt="ttt";
console.log(ttt+abc)//ReferenceError: abc is not defined
26、$("[href]").html("")這個是所有的包含有href屬性的innerHTML都會被置空。來自搜狗筆試。
//這樣是沒有效果的
var li=document.getElementsByTagName("li");
var lii=document.getElementsByClassName("foo");
lii.innerHTML=""; //無效
li.innerHTML=""; //無效
//隻有确定某一個才有效果。
li[0].innerHTML="3";
lii[1].innerHTML="";
25、form表單在你不寫enctype屬性時,也預設為其添加了enctype屬性值,預設值是enctype="application/x-www-form-urlencoded".這個屬性管理的是表單的MIME編碼,共有三個值可選:
①application/x-www-form-urlencoded (預設值)
②multipart/form-data
③text/plain
①application/x-www-form-urlencoded是預設值,大家可能在AJAX裡見過這個:xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 這兩個要做的是同一件事情,就是設定表單傳輸的編碼。在AJAX裡不寫有可能會報錯,但是在HTML的form表單裡是可以不寫enctype="application/x-www-form-urlencoded"的,因為預設HTML表單就是這種傳輸編碼類型。
而②multipart-form-data是用來指定傳輸資料的特殊類型的,主要就是我們上傳的非文本的内容,比如圖檔或者mp3等等。
③text/plain是純文字傳輸的意思,在發送郵件時要設定這種編碼類型,否則會出現接收時編碼混亂的問題,網絡上經常拿text/plain和text/html做比較,其實這兩個很好區分,前者用來傳輸純文字檔案,後者則是傳遞html代碼的編碼類型,在發送頭檔案時才用得上。
①和③都不能用于上傳檔案,隻有multipart/form-data才能完整的傳遞檔案資料。
24、設有2條路由21.1.193.0/24和21.1.194.0/24,如果進行路由彙聚,覆寫這兩條路由的位址是____.
A 21.1.200.0/22 B 21.1.192.0/23
C 21.1.192.0/21 D 21.1.224.0/20
194:11000010
193:11000001
C選項無論21還是22,其實都符合題目要求!使用22個網絡位的話,會在選擇路由時,符合“最長字首比對”這一規則,這是因為網絡字首越長,其位址塊就越小,因而路由就越具體,效率也越高。使用21的話,也沒什麼影響,就是不符合上面這一規則而已!
23、訂單資料庫的設計
之前一直不知道訂單詳情表要怎麼搞,因為,你下一個訂單可能包含好幾種商品啊,後面想通了,以訂單号為主鍵,多插入幾條資料不就好了,為什麼一定要放在一行呢?
22、二叉樹的對稱序列就是中序周遊。
21、enum, 如果中間有參數初始化了,就在該參數基礎上,下一個未指派的參數值為該指派參數的值+1。
20、100M記憶體 1G的資料,采用的算法應該是歸并排序。
19、sizeof 空類的大小為1
18、二分法查找
例子:2,5,7,10,14,15,18,23,35,41,52 中查找12
查找序列是15 7 10 14,查找不到
17、系統開銷的計算
處理機時間片為200ms,中間間隔10ms,系統開銷是多少。
16、京東的一道選擇題cpi的計算
CPI(Clock cycle Per Instruction)表示執行某個程式的指令平均時鐘周期數則:
CPI=TC/IC (IC[instrution counter]表示某個程式的所有指令的條數;tc表示執行某個程式所花費的時鐘周期)
15、<input> type 屬性
值 | 描述 |
---|---|
button | 定義可點選的按鈕(大多與 JavaScript 使用來啟動腳本) |
checkbox | 定義複選框。 |
color | 定義拾色器。 |
date | 定義日期字段(帶有 calendar 控件) |
datetime | 定義日期字段(帶有 calendar 和 time 控件) |
datetime-local | |
month | 定義日期字段的月(帶有 calendar 控件) |
week | 定義日期字段的周(帶有 calendar 控件) |
time | 定義日期字段的時、分、秒(帶有 time 控件) |
定義用于 e-mail 位址的文本字段 | |
file | 定義輸入字段和 "浏覽..." 按鈕,供檔案上傳 |
hidden | 定義隐藏輸入字段 |
image | 定義圖像作為送出按鈕 |
number | 定義帶有 spinner 控件的數字字段 |
password | 定義密碼字段。字段中的字元會被遮蔽。 |
radio | 定義單選按鈕。 |
range | 定義帶有 slider 控件的數字字段。 |
reset | 定義重置按鈕。重置按鈕會将所有表單字段重置為初始值。 |
search | 定義用于搜尋的文本字段。 |
submit | 定義送出按鈕。送出按鈕向伺服器發送資料。 |
tel | 定義用于電話号碼的文本字段。 |
text | 預設。定義單行輸入字段,使用者可在其中輸入文本。預設是 20 個字元。 |
url | 定義用于 URL 的文本字段。 |
不看不知道,一看,吓一跳,盡然有這麼多屬性。
14、union 和union all的差別
union和union all的差別是,union會自動壓縮多個結果集合中的重複結果,而union all則将所有的結果全部顯示出來,不管是不是重複。
Union:對兩個結果集進行并集操作,不包括重複行,同時進行預設規則的排序;
Union All:對兩個結果集進行并集操作,包括重複行,不進行排序;
Intersect:對兩個結果集進行交集操作,不包括重複行,同時進行預設規則的排序;
Minus:對兩個結果集進行差操作,不包括重複行,同時進行預設規則的排序。
可以在最後一個結果集中指定Order by子句改變排序方式。
union 和 union all都可以将多個結果集合并,而不僅僅是兩個,你可以将多個結果集串起來。
使用union和union all必須保證各個select 集合的結果有相同個數的列,并且每個列的類型是一樣的。但列名則不一定需要相同,oracle會将第一個結果的列名作為結果集的列名。
13、數組是引用類型資料,之前一直以為它是基本類型,具體參見以下代碼:
var arr=[1,2,3];
var arr2=arr;
arr2.push(4);
var arr3=arr.slice(0);
console.log(arr3==arr);//flase
console.log(arr2===arr);//true
上面我先push了一下,再來複制,一個用了==,一個用了===,可以明顯的判斷數組确實是引用類型資料,
12、以下哪些是JavaScript中标準的全局屬性(多選)
A. Infinity B. NaN C. undefined D. null
答案:ABC
解析:全局屬性:NaN,Java,undefined,Infinity,Packages
頂層函數(全局函數)
函數 | |
---|---|
decodeURI() | 解碼某個編碼的 URI。 |
decodeURIComponent() | 解碼一個編碼的 URI 元件。 |
encodeURI() | 把字元串編碼為 URI。 |
encodeURIComponent() | 把字元串編碼為 URI 元件。 |
escape() | 對字元串進行編碼。 |
eval() | 計算 JavaScript 字元串,并把它作為腳本代碼來執行。 |
getClass() | 傳回一個 JavaObject 的 JavaClass。 |
isFinite() | 檢查某個值是否為有窮大的數。 |
isNaN() | 檢查某個值是否是數字。 |
Number() | 把對象的值轉換為數字。 |
parseFloat() | 解析一個字元串并傳回一個浮點數。 |
parseInt() | 解析一個字元串并傳回一個整數。 |
String() | 把對象的值轉換為字元串。 |
unescape() | 對由 escape() 編碼的字元串進行解碼。 |
頂層屬性(全局屬性)
方法 | |
---|---|
Infinity | 代表正的無窮大的數值。 |
java | 代表 java.* 包層級的一個 JavaPackage。 |
NaN | 訓示某個值是不是數字值。 |
Packages | 根 JavaPackage 對象。 |
undefined | 訓示未定義的值。 |
11、以下代碼運作結果是
var mystring=" I am a student";
var a=mystring.substring(9,13);
document.write(a);
A. stud B. tuden C. udent D. uden
答案:D
解析:substring() 方法用于提取字元串中介于兩個指定下标之間的字元。傳回是一個新的字元串,該字元串值包含 stringObject 的一個子字元串,其内容是從 start 處到 stop-1 處的所有字元,其長度為 stop 減start。當第二個為負數的時候,會變成0,并比較兩個參數的大小,将小的放在前面。
substr(s1,s2)接受兩個參數,第一個是起始位置,第二個是參數數表示截取的長度。當第二個為負數的時候,會變成0,也就是截取0個數字,傳回空。
10、考察對new的了解,還有就是this指向哪裡
var name="u";
function p(name){
this.name=name;
}
p1=p("t");
p2=new p("r");
console.log(p1);//undefined
console.log(p2);//p的一個執行個體對象
console.log(name);//t
console.log(p2.name);//r
console.log(p1.name);// cannot read property
9、考察對css位置的了解,x是否都在y的左邊,還有兩個選項忘了
<p style="float:left">x<p>
<p style="float:right">y</p>
<br>
<br>
<p style="float:left">x</p>
<p style="width:100%;background:red;">y</p>
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMzIDOzYzM0YTMtgjN2cDNzETMxAzM4AjNxAjMtUDMwYTM58CX4AjNxAjMvwVNwAjNxkzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
8、對一些不常用css的考察
- :nth-last-of-type()
- :last-of-type
- :nth-of-type
這幾個都是存在的。。。。。貌似我選錯了
7、用和不用use strict
解析:嚴格模式下,對象不能有重名的屬性。正常模式下,如果對象有多個重名屬性,最後指派的那個屬性會覆寫前面的值。嚴格模式下,這屬于文法錯誤。
嚴格模式詳解參考:http://www.cnblogs.com/jiqing9006/p/5091491.html
我嘗試結果是:
IE:
使用嚴格模式:(報錯)
不使用嚴格模式:(不報錯)
Chrome:
用不用嚴格模式都不報錯:
Firefox:
6、考察math round, ceil ,floor的差別
round()方法第二題解析過,是取與 x 最接近的整數,不一定大于等于參數
floor() 方法可對一個數進行下舍入。該方法執行的是向下取整計算,它傳回的是小于或等于函數參數,并且與之最接近的整數。
ceil() 方法可對一個數進行上舍入。該方法執行的是向上取整計算,它傳回的是大于或等于函數參數,并且與之最接近的整數。
5、頁面有一個按鈕button id為 button1,通過原生的js如何禁用?
<input type="button" id="button1" value="1">
<input type="button" id="button2" value="2">
<input type="button" id="button3" value="3">
<input type="button" id="button4" value="4">
<input type="button" id="button5" value="5">
<input type="button" id="button6" value="6">
<script>
var t1=document.getElementById("button1");
var t2=document.getElementById("button2");
var t3=document.getElementById("button3");
var t4=document.getElementById("button4");
var t5=document.getElementById("button5");
var t6=document.getElementById("button6");
t1.setAttribute("disabled"," true");//yes
t2.setAttribute("readonly",true);//no
t3.disabled=true;//yes
t4.readonly=true;//no
t5.setAttribute("disabled",true);//yes
t6.setAttribute("readonly","true");//no
實驗發現設定readonly屬性都是不可以的,disabled無論true加不加雙引号都可以,“.”法和setAttribute兩個都可以使用
4、頁面有一個按鈕button id為 button1,通過原生的js 設定背景色為紅色?
正确答案 : A
A document.getElementById("button1").style.backgroundColor="red";
B document.getElementById("button1").style.backgroundcolor="red";
C document.getElementById("button1").style.backGroundColor="red";
D document.getElementById("button1").style.bgcolor="red";
3、請選出所有的置換元素( )
正确答案 : ABCD
A img
B input
C textarea
D select
2、typeof 的一些用法
var str=new String(4)
var num=new Number(5)
console.log(typeof "123"); //string
console.log(typeof 123); //number
console.log(typeof str); //object
console.log(typeof num); //object
function t (s1,s2,s3) {
console.log(arguments.length)
}
t(23,32,23);//3
1、自調用匿名函數語句
function sayhi(m){console.log(m)}("hi"); //不會執行
!function sayhi(m){console.log(m)}("hi"); //立即執行,輸出hi
+function sayhi(m){console.log(m)}("hi"); //立即執行,輸出hi
~function sayhi(m){console.log(m)}("hi"); //立即執行,輸出hi
var s=function sayhi(m){console.log(m)}("hi");//立即執行,輸出hi
第一個函數是個匿名函數,并不會立即執行,因為js将其當成是函數定義;其後三個前面分别加了一些符号,js就會将其解析成表達式,就會立即執行。第四個是真正意義上的函數表達式,是以,會立即執行,輸出結果。相比采用括号包住的自調用匿名函數,他還少了個一個字元
樹林美麗、幽暗而深邃,但我有諾言尚待實作,還要奔行百裡方可沉睡。 -- 羅伯特·弗羅斯特