【学习笔记】:JavaScript基础知识超详细总结!

前端开发 作者: 2024-08-20 23:15:01
[toc] 一、JavaScript的实现 ECMAScript:ECMA(欧洲计算机制造协会)指定的全新脚本语言,用于规定当时三足鼎立的三家Script语言(网景的JavaScript、Nombas

一、JavaScript的实现

二、JavaScript语言的特点

三、JS与HTML如何结合

  • 可以在内部任何的地方定义<script></script>标签,在标签的内部书写JS代码,需要注意的是:解析顺序是逐行进行的,JS代码定义的位置将会影响执行的顺序。
  • 可以引入外部文件,如<script src="xxx"></script>,src的值即为外部链接。

四、JS中的数据类型

五、JS引用数据类型之函数

  • 一段可执行代码的合集,在需要执行的时候可以在方法名之后添加一对小括号执行方法,是一段可执行的字符串。
  • 函数可以看成功能完整的对象Function。
//普通方法定义函数
function mx(a,b){
    return a+b;
}
//执行函数
mx(1,2);
//动态函数定义
var mx = new Function("a","b","return a+b");
var mx = function(a,b){
    return a+b;
};
function add(){
    alert(arguments[0]);
}
  • 作为参数使用:直接书写方法名即可。
  • 作为方法使用:在方法名之后添加小括号,即为方法使用。

六、JS引用数据类型之数组

1、数组特点

2、数组创建

var arr = new Array();//返回数组为空,length为0
var arr = new Array(3);//如果传入参数为数字,则表示指定容量,返回长度为3,元素为undefined的数组
var arr = new Array(1,"a",false,new Object());
var arr = [1,true,"bb"];

3、数组方法

4、数组属性

七、JS引用数据类型之对象

var mx = new Function("a","return a+b");//动态创建Function对象,但不建议这样创建

//下面这条语句看似将函数传给一个变量很奇怪,其实是有说法的:
var mt = mx;			//mt与mx指向同一函数,它们都可以执行该函数代码。
var reg = new RegExp(pattern,attributes);//pattern匹配模式,attributes参数可选,指定匹配方式
var reg = /pattern/attributes;
//测试方法
var result = reg.test(str);//判断str是否符合正则匹配

Global

Math

自定义对象的方法

function Person() {
}
var p = new Person();
p.name = "天乔巴夏";
p.age = 18;
p.gender = "male";
//定义方法
p.say = function () {
    return this.name + " say......";
};
//打印对象
console.log(p);
//含参构造
function Student(name,age) {
    this.name = name;
    this.age = age;
}

var student = new Student("天乔巴夏",18);
//直接添加属性
student.addr = "hangzhou";
console.log(student);
var p = {
    name: "天乔巴夏",age: 18,say: function () {
        return this.name + " say......";
    }
};
console.log(p);

自定义对象的操作

delete p.say;
with(student){
    alert(name);
}
for(var prop in p){
    alert(prop);
}

八、JS中的自动类型转换

  • 可转为字符串形式,比如在和字符串拼接的时候。
  • 可转为布尔类型,0为false,其他都为true。
  • 转化为Number对象(这点可以参考Java的自动装箱与拆箱)。
  • 可转化为对应的数值。但是需要注意的是:字符串和数字进行相加,将会转为字符串拼接。当字符串和数字进行减运算时,如果可以的话,字符串会转化成对应的数值,然后进行减法运算。否则,将会返回一个NaN的值,如果可以的话,可以尝试使用parseFloat() 与 parseInt()方法对字符串先进行处理。
	console.log("123"-1);//122
	console.log("abc123"-1);//NaN
  • 亦可转为布尔类型,空字符串为false,非空则为true。
  • 转化为String对象(这点可以参考Java的自动装箱与拆箱)。
<script> 
    var a = "123abc"; 
    document.write(typeof(a)); 		//string 
    document.write(a+1); 			//123abc1 
    document.write(typeof(a+1)); 	//string 
    document.write(parseInt(a)); 	//123 
</script>
  • 需要的时候可转为数字类型,true为1,false为0。
  • 需要的时候可以转化为对应字符串。
  • 转化为Boolean对象(这点可以参考Java的自动装箱与拆箱)。
  • 可转为布尔类型,对象为null,则为false,其余都是true。
  • null和undefined都是false。

九、JS中的运算符

console.log(123 == "123");//true
console.log(123 === "123");//false
console.log(1.1+2.2);//3.3000000000000003
console.log(1.2+1.8);//3
console.log(3/2*100);//150
2+3>4 ? console.log(true):console.log(false)//true

十、JS中的流程控制语句

if(x = 4){
    //do 1
}else{
    //do 2
}
while(1){
    //do 
}//死循环
if(obj){
    //do
}//空指针判断

十一、JS中的变量

var a = 1;
a = "abc";
var a;
console.log(typeof(a));//undefined
var a = 4;	//局部变量
a = 4;		//全局变量

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65771.html