JavaScript代码基础

1、typeof操作

typeof的返回值为字符串

typeof null;//"object"
typeof undefined;//"undefined"
typeof NaN;//"number"
typeof 1;//"number"
typeof Number.Min_VALUE;//"number"
typeof Infinity;//"number"
typeof "123";//"string"
typeof true;//"boolean"
typeof window;//"object"
typeof document;//"object"
typeof eval;//"function"
typeof Date;//"function"
typeof Array;//"function"
typeof Math;//"object"
typeof a;//"undefined"

null instanceof Object;//false
2、字符串操作

undefined + NaN => NaN
“123” + NaN => “123NaN”
NaN + “undefined” => “NaNundefined”
true + 1 => 2
“3” + 0 => 30//只要有一边为字符串,使用"+"时就会进行字符串的拼接
undefined + 11 => NaN
isNaN(true) => false
isNaN(false) => false
null == undefined => true
null === undefined => false
[1,2,3] === [1,2,3] => false

var str = "";
if(a == undefined){
	str = "1";
}else{
	str = "2";
}
console.log(str);//1
if(typeof a == undefined){
	str = "3";
}else{
	str = "4";
}
console.log(str);//4
if(typeof a == "undefined"){
	str = "5";
}else{
	str = "6";
}
console.log(str);//5
3、函数操作

   1>、函数的解析顺序

//函数一:
var foo = 1;
(function(){
	console.log(foo);//undefined
	var foo = 2;
	console.log(foo);//2
})();
//函数二
var a = 1;
function foo(){
	var a = 2;
	var b = 3;
	console.log(b);
	c = 4;
}
console.log(a);//1
foo();//3
console.log(c);//4

   2>、属性操作delete

  在使用delete操作符时,可以删除没有使用var声明的变量,可以删除对象的属性;但是不是删除传入的参数

(function(){
	delete x;
	console.log(x);//6
})(1+5);

   3>、this指向

var x = 3;
var foo = {
	x: 2,
	baz: {
		x: 1,
		bar: function(){
			return this.x;
		}
	}
}
var a = foo.baz.bar;//返回值为一个函数
a();//3,调用这个函数时,是window对象来调用,所以this指向window,返回值为3
foo.baz.bar();//1,在调用bar函数时,使用foo.baz对象来调用的,所以this指向foo.baz,所以返回值为1

   4>、变量提升

//在函数执行if判断时,name处于声明状态还未赋值,此时typeof name的值为“undefined”,然后再赋值,所以输出“John”
var name = "Jack";
(function(){
	if(typeof name === "undefined"){
		var name = "John";
		console.log(name);//John
	}else{
		console.log(name);
	}
})();

   5>、arguments参数

function setArr(arr){
	arr[0] = arr[2];
}
function getArr(a, b, c){
	c = 10;
	setArr(arguments);
	return a + b + c;//a=10,b=1,c=10
}
getArr(1, 1, 1);//21

   6>、变量的声明

(function(){
	var x = y = 1;//var x=1; y=1;y相当于是一个全局变量
})()
console.log(y);//1
console.log(x);//x is not defined

   7>、for循环

var k = 0;
for(var m=0,n=0;m<10,n<7;m++,n++){
	k = m + n;
}
console.log(k);//输出结果为12
var k = 0;
for(var m=0,n=0;m<7,n<10;m++,n++){
	k = m + n;
}
console.log(k);//输出结果为18

   8>、定义一个函数:function repeat(func,times,wait){…}这个函数能够返回一个新函数,比如这样用var repeatedFun = repeat(alert,10,5000),调用这个repeatedFun(“helloworld”),会alert10次,每次间隔5秒

function fun(str){
	console.log(str);
}
function repeat(func, times, wait){
	return function(str){
		var timer = setInterval(function(){
			func(str);
			times--;
			if(times <= 0){
				clearInterval(timer);
			}
		},wait);
	}
}
var repeatedFun = repeat(fun, 10, 5000);
repeatedFun("hello world");

下边这两个函数参考地址:https://www.cnblogs.com/wgdong/p/5288598.html

function repeat(func, times, wait){
	function repeatFun(){
		var handle,
			_arguments = arguments,
			i = 0;
		handle = setInterval(function(){
			i = i + 1;
			if(i === times){
				clearInterval(handle);
				return;
			}
			func.apply(null, _arguments);
		},wait);
	}
	return repeatFun;
}
var repeatF = repeat(alert, 10, 5000);
repeatF("hello world");
function repeatFun(fn, times, wait){
	var i = 0;
	var handle = setInterval(function(){
		fun.apply(null, arguments);
		if(i == 9){
			clearInterval(handle);
		}
		i++;
	},wait);
}
function fun(){
	console.log("hello world");
}
repeatFun(fun, 10, 5000);
JavaScript电子书,包括了JavaScript的大部分知识,可以帮助读者快速入门。内容如下: 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 1.2.5 数值计算 1.3 JavaScript编程起步 1.3.1 “Hello World!”程序 1.3.2 选择JavaScript脚本编辑器 1.4 如何引入JavaScript脚本代码 1.4.1 通过与标记对引入 1.4.2 通过标记的src属性引入 1.4.3 通过JavaScript伪URL引入 1.4.4 通过HTML文档事件处理程序引入 1.5 嵌入JavaScript脚本代码的位置 1.5.1 在与标记对之间放置 1.5.2 在与标记对之间放置 1.5.3 在两个标记对之间混合放置 1.6 选择合适的浏览器 1.7 处理不支持JavaScript脚本的情况 1.7.1 使用标记对直接屏蔽法 1.7.2 使用和标记对给出提示信息 1.8 JavaScript的实现基础 1.8.1 ECMAScript 1.8.2 DOM 1.8.3 BOM 1.9 客户端与服务器端脚本 1.10 JavaScript与JScript、 VBScript 1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 2.2 数值类型 2.2.1 整型和浮点数值 2.2.2 八进制和十六进制 2.3 变量 2.3.1 变量标识符 2.3.2 变量申明 2.3.3 变量作用域 2.4 弱类型 2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算符 2.7.3 位运算符 2.7.4 位移运算符 2.7.5 自加和自减 2.7.6 比较运算符 2.7.7 逻辑运算符 2.7.8 逗号运算符 2.7.9 空运算符 2.7.10 ?...:运算符 2.7.11 对象运算符 2.7.12 typeof运算符 2.7.13 运算符优先级 2.8 核心语句 2.8.1 基本处理流程 2.8.2 if条件假设语句 2.8.3 switch流程控制语句 2.8.4 for循环语句 2.8.5 while和do-while循环语句 2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归调用 2.9.5 语言注释语句 2.9.6 函数应用注意事项 2.10 本章小结 第3章 JavaScript事件处理 3.1 什么是事件 3.2 HTML文档事件 3.2.1 事件捆绑 3.2.2 浏览器事件 3.2.3 HTML元素事件 3.2.4 IE扩展的事件 3.3 JavaScript如何处理事件 3.3.1 匿名函数 3.3.2 显式声明 3.3.3 手工触发 3.4 事件处理器的返回值 3.5 事件处理器设置的灵活性 3.6 现代事件模型与Event对象 3.7 IE4中的Event对象 3.7.1 对象属性 3.7.2 事件上溯 3.7.3 阻止事件上溯 3.7.4 事件改向 3.8 NN4中的Event对象 3.8.1 对象属性 3.8.2 事件捕获 3.8.3 关闭事件捕获 3.8.4 事件传递 3.9 DOM的解决之道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值