1.利用typeof區(qū)分數(shù)據(jù)類型
var a;
var b = 12;
var c = 'node.js';
var d = true;
var e = function() {
}
var f = null;
var g = {
num: 12
}
var arr = [a,b,c,d,e,f,g];
for(var i = 0, max = arr.length; i < max; i++ ){
console.log(typeof arr[i])
}
輸出結(jié)果為:
undefined
number
string
boolean
function
object
object
可以看出null 和object都返回了object抄伍,這是因為null實際上是一個空對象指針秀睛,當一個變量只聲明未賦值時都只返回object
2.利用Boolean()轉(zhuǎn)化數(shù)據(jù)類型
var a;
var b = null;
var c =0;
var d ='';
var e = NaN;
var arr = [a,b,c,d,e];
for(var i=0, max = arr.length;i<max;i++){
console.log(Boolean(arr[i]))
}
結(jié)果如下:
false
false
false
false
false
需要注意的是:空字符串惶傻,0差牛,null以政,undefined帮哈,NaN都將轉(zhuǎn)化為false项郊,其他則會轉(zhuǎn)化為true馅扣。
3.Node.js嘗試路徑
例如:某個模塊的絕對路徑是home/hello/hello.js,在該模塊中導(dǎo)入其他模塊着降,寫法為require("me/first")差油,Node.js會依次使用一下路徑
/home/hello/node_modules/me/first
/home/node_modules/me/first
node_modules/me/first
4. 客戶端向 http 發(fā)送請求
a. http.request 使用 get 方法
首先,我寫了一個在請求http相應(yīng)的頁面任洞,打開瀏覽器輸出hello node
var http = require('http');
http.createServer(function(request, response){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Wrold\n');
}).listen(5000);
console.log('Server running at http://localhost:5000/');
然后再新建一個文件蓄喇,http.request 使用 get方法
const http = require('http');
let reqData = '';
http.request({
'host': '127.0.0.1',
'port': '5000',
'method': 'get'}, function(res){
res.on('data', function(chunk){
reqData += chunk;
});
res.on('end', function() {
console.log(reqData);
});
}).end();
同時運行,結(jié)果會在命令行輸出 hello node
b. 利用http.get()方法實現(xiàn)同樣的效果
const http = require('http');
let reqData = '';
http.get({
'host': '127.0.0.1',
'port': '5000'
}, function(res) {
res.on('data', function(chunk) {
reqData += chunk;
});
res.on('end', function(){
console.log(reqData);
})
}).end();
c. 利用response實現(xiàn)
const http = require('http');
let reqData = '';
let option= {
'host': '127.0.0.1',
'port': '5000'
};
const req = http.request(option);
req.on('response', function(res) {
res.on('data', function(chunk) {
reqData += chunk;
});
res.on('end', function() {
console.log(reqData);
});
});
命令集錦
npm init -y
//系統(tǒng)使用默認值生成package.json文件
npm install underscore
//安裝js工具庫
安裝命令 + -S
//安裝包的記錄會在package.json的dependencies
安裝命令 + -dev
//安裝包的記錄會在package.json的devDependencies
url.parse()
//解析urrl地址交掏,返回url對象
url.format()
//接受一個url對象為參數(shù)妆偏,返回完整的url地址
url.ressolve(from, to)
//接受base url ,href url 像url解析盅弛,返回完整的url
querystring.parse();
//查詢字符串反序列化為一個對象钱骂;類似ISON.parse()
querysstring.stringify()
//對象反序列化為一個字符串叔锐;類似JSON.stringify
util.inspect();
//返回一個對象反序列化為字符串
util.format()
//返回使用占位符格式化的字符串,類似c語言的printf
util.log()
//在控制臺輸出见秽,類似console.log愉烙;帶有時間戳
path.join()
//將所有的參數(shù)連接起來,返回一個路徑
path.extname()
//返回路徑參數(shù)的擴展名解取,無擴展時返回空字符串
path.parse()
//將路徑解析為一個路徑對象
path.format
//接受一個路徑對象為參數(shù)步责,返回一個完整的路徑地址(路徑字符串)
dns.resolve()
//將一個域名解析為一個指定類型的數(shù)組
dns.lookup
//返回第一個被發(fā)現(xiàn)的ipv4或者ipv6的地址
dns.reverse
//通過ip解析域名
一個文件對象有:
root : 根目錄(磁盤名)
dir: 完整目錄
base: 路徑最后一個部分(肯是文件名或者文件夾名,是文件名時帶拓展名)
ext: 拓展名
name: 文件名(不帶拓展名)