[JS] javascript基础语法
W3CSchool全套Web开发手册:点击下载
1.javascript是什么
js是具有面向对象能力的,解释性的程序设计语言.
2.js的类型
[基本类型]:string number boolean
[复合类型]:对象(对象,函数,数组)
[无类型]:null undefiend
3.typeof
语法:string typeof (变量名) 或者 string typeof 变量名
作用:返回这个变量的类型
4.块级作用域
js没有块级作用域的概念.if while等内声明的变量都是和外面声明的变量是同一作用域的.
5.运算符
==和!=:是判断2个结果是否相等
in:属性是否属于某个对象
instanceof:变量是否属于某个类 add instanceof Function
6.数字类型
js中的数字类型都是浮点数.1===1.00
8进制:0开头 16进制:0x开头
7.NaN Infinity IsNaN IsFinite
NaN:Not a Number alert(0/0)
Infinity:无限的 alert(0.1/0)
boolean IsNaN(number): 判断不是数字
boolean IsFinite(number): 判断数字是不是有限的
8.string类型方法
string substring(startindex,endindex):左边取的到,右边取不到
string substr(startindex,length):
9.包装类型
包装类型和基本类型的用法一直,是对基本类型的扩充.
Number String Boolean
10.函数/匿名函数
函数是js的灵魂,匿名函数就是将函数赋给一个变量.
函数:function 函数名(参数){方法体}
匿名函数:var 变量名 = function(参数){方法体}
11.变量名提升/函数名提升
函数中是局部作用域,在局部作用域内使用var声明的变量都会隐式的前置.
如:
var i = 1;
function test(){
alert(i);
var i = 2; //此处声明的i相当于在局部作用域最上面声明的.所以alert(i)的i为undefined.
alert(i);
}
var func = function(){return 1};
function test(){
func();
var func = function(){return 2}; //此处和上例相同,因为是函数调用的原因.此处会直接报错.执行不下去.
func();
}
12.动态函数
new Function(arg1,arg2...argN,body):会创建一个函数并返回.
13.arguments
函数的内部会有一个默认的arguments对象,不是数组.
typeof arguments = Object. arguments instanceof Array = false
14.创建对象
在js中没有类的概念,但是函数可以作为构造函数来使用.对象实际就是键值对.
var Person = function(){
this.ID = 1;
this.Name = '2';
}
var p1 = new Person(); //创建了一个Person对象,有属性ID和Name
原理:
new 关键字:创建一个object对象.将函数内的this指向这个对象.
构造函数:执行构造函数为this扩展成员.执行完返回this对象.
15.对象的字面值
var o = {
Id:1
,Name:'2'
}
可以随意的添加成员o.Age = 3;删除成员:delete o.Age;调用成员o['Age']();
16.数组的创建
2种方式创建:
var arr = new Array()
var arr = []
一般给数组赋值都是:
arr[arr.length] = value;
17.null undefined
null表示空,没有引用对象.
undefined表示未定义,不存在.有3种情况:
a.未定义的属性
b.未定义的变量
c.返回只有return
18.Error
相当于C#中的Exception对象
在js中 throw new Error('此处有错误');
常用:throw {msg:'异常',date:new Date()}
19.常用函数
编码函数:
encodeURI:对字符串编码,让中文可以再网络中正常传输 推荐使用
decodeURI:对字符串解码. 推荐使用
escape:编码 unescape:解码 编码成16进制.
20.扩展方法
扩展方法的本质就是继承.
构造函数都有prototype(原型)属性.通过构造函数new的对象实际都是派生自prototype.
注意:所有的函数都继承自Function.间接继承Object.
Function.prototype.say = function(){ //给所有函数扩展了一个say方法.
alert('每个函数都能调用'); //函数都派生自Function的prototype属性
}
var func = function(){}; func.say();
21.继承 重点
(var obj = new Object(); var str = new String(); var func = new Function(); 所以Object,String,Function都为构造函数.)
//继承方式1:
Object.prototype.jc = function(objBase){
var F = function(){};
F.prototype = objBase;
return new F();
}
//继承方式2:
Object.prototype.jc = function(objBase){
this.prototype = objBase;
}
var F = function(){};
F.jc(objBase);
var func = new F();
//继承方式3:(多继承)
Object.prototype.jc = function () {
var arr = arguments;
for (var i = 0; i < arr.length; i++) {
for (var k in arr[i]) {
this.prototype[k] = arr[i][k];
}
}
};
var F = function(){};
F.jc({id:1},{age:2},{say:function(){
alert(this.id + ":"+ this.age);
}})
var fu = new F();
fu.say();
22.闭包
闭包就是 将高级作用域内的变量提供给低级作用域访问.
var P = function () {
var i = 1;
return function(){
alert(i);
}
};
var p = new P(); p(); 最外面的p能调用P函数里面的i;
23.函数
函数在js中有4种身份
[函数]:var func = function(){}; //函数与方法的区别主要在函数内this指的是什么.
[方法]:var o = {}; o.say = function(){};
[构造函数]:var P = function(){}; var o = new P();
[apply|call]:函数名.apply(对象,[参数数组]) 函数名.call(对象,参数列表);
24.DOM
DOM操作就是js操作html标签.
DOM操作:
创建节点:Element document.createElement(tagName)
获得节点:
根据id,className,tagName Element document.getElementByXX(XXValue)
获得子节点:
父节点.childNodes
父节点.firstChild
父节点.lastChild
获得兄弟节点:
当前节点.nextSibling
添加节点:
父节点.appendChild()
删除节点
父节点.removeChild()
设置节点属性
DOM.setAttribute('属性名','属性值')
DOM.getAttribute('属性名')
常用属性:nodeName(大写标签名),nodeType(1标签 2属性 3文本),nodeValue(文本节点的文本)
设置节点文本
元素节点.innerText
文本节点.nodeValue
input节点.value
DOM树:注意的是文本节点是一个单独的节点.
25.setTimeout,setInterval本质还是单线程的.js是以事件方式驱动的
26.js压缩:
方式一:
javascript compressor 在线压缩工具
地址:http://dean.edwards.name/packer/
方式二:
JSA 压缩,混淆,分析的工具
下载地址:
方式三:
closure compiler 谷歌的js优化器.非常智能.
下载地址:
[JS] javascript基础语法的更多相关文章
- javascript基础语法——词法结构
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...
- Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制
Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...
- javascript基础语法——表达式
× 目录 [1]原始表达式 [2]复杂表达式 前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascr ...
- javascript基础语法备忘录-变量和数据类型
//javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...
- JavaScript基础语法资料
JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...
- Nice!JavaScript基础语法知识都在这儿了
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 转载请注明出处! 链接:https://blog.csdn ...
- 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天
1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...
- JavaScript 基础语法
1 谈谈 JavaScript JavaScript,通常会简称为'JS', 是一种浏览器脚本语言 1.1 JavaScript 编程语言特点 JavaScript是一种脚本编程语言 JavaScri ...
- javaScript基础语法(上)
相关理论概念: 直接量的概念:直接描述某个(些)存储空间的值的量,如变量的值.对象的值.数组的值. 数据类型:在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作. 1.变量的声明和使用 变 ...
随机推荐
- “粪便银行”:救人拿钱两不误 A Poop Bank in Massachusetts Will Pay You $40 Every Day
“粪便银行”:救人拿钱两不误 如果你年龄小于50岁,排便规律,而且愿意每天去美国麻省麦德福德跑一趟,那么没准你可以每天得到40美元的外快,而你需要做的事情只是生产便便. 要想得到这笔收入,请拜访“开放 ...
- Putty & Ctrl+s 的魔咒
Long long ago“ 某些旧的”哑终端“会在发送过来的数据太多,显示速度跟不上时发送一个Ctrl+s让对方等一下,然后再准备好继续显示时发送一个Ctrl+q.Putty“兼容”了这个特性.也有 ...
- Codeforces Round #379 (Div. 2) C. Anton and Making Potions 枚举+二分
C. Anton and Making Potions 题目连接: http://codeforces.com/contest/734/problem/C Description Anton is p ...
- iOS中的webView加载HTML
在日常开发中,我们为了效率会用到很多很多的WebView,比如在做某个明细页面的时候我们返回给你的可能是一个html字符串,我们就需要将当前字符串展示到webView上面,所以我们对HTML标签需要有 ...
- Android 6.0 源代码编译实践
http://www.judymax.com/archives/1087 Android 6.0 源代码编译实践 https://mirrors.tuna.tsinghua.edu.cn/help/A ...
- Pro ASP.NET MVC –第四章 语言特性精华
C#语言有很多特性,并不是所有的程序员都了解本书我们将会使用的C#语言特性.因此,在本章,我们将了解一下作为一个好的MVC程序员需要了解C#语言的特性. 每个特性我们都只是简要介绍.如果你想深入了解L ...
- iOS开发——高级技术精选&底层开发之越狱开发第二篇
底层开发之越狱开发第二篇 今天项目中要用到检查iPhone是否越狱的方法. Umeng统计的Mobclick.h里面已经包含了越狱检测的代码,可以直接使用 /*方法名: * isJailbroken ...
- pecl install imagick
steven@server:/var/www$ sudo pecl install imagickdownloading imagick-2.3.0.tgz ...Starting to downlo ...
- 即将放出ITSEC第一期所有培训视频
课程大概被分为三个章节 客户端安全培训 安全工具培训 服务端安全培训 部分PPT 详细课程表 FireBug代码调试工具使用:工具介绍 FireBu ...
- fedora Server 21 安装 Opera 29.0.1795.47
最新文章:Virson's Blog 安装源: yum localinstall --nogpgcheck http://mirror.yandex.ru/fedora/russianfedora/r ...