JavaScript学习(一)
2020-12-13 16:37
标签:class 传递 bsp div 优先级 操作 直接 报错 适用于 1、引入Script文件,一般放到head标签内即可 路径问题: ./表示当前路径; /表示根目录; ../表示上一级目录; 如果不加/,如 2、调试 使用console.log()进行控制台的信息输出,在source中加断点调试,和vs调试一样; 3.类型 3.1 js是弱类型语言,使用var关键字声明,如果想知道当前操作的变量是什么类型,使用typeof关键字;typeof num即可(注意,typeof是个关键字,不是函数)。 3.2 如果一个变量未进行赋值,那么log它的值就是undefined 注意:undefined和null不一样 3.3 注意NaN表示的不是一个数字,但是它是数字类型 4.字符 JS中字符由""和‘‘包裹,这两个符号表示的意思相同,之所以有两种,是方便句内引号不需要额外加转义,句内单引号,那么外包双引号,反之同理。如果句内又有单引号,也有双引号,那么加额外转义字符 \ 即可。 5.文档注释 单行和多行注释同c# 文档注释使用,按下/**回车即可,一般的编译器会自动补充完整 /** * */ 6.类型转换 parseInt()这个是从第一个字符转换成数字第一个碰到的不是数字的字符截止,返回输出结果,如果从第一个字符开始就不是数字,直接返回NaN; 7.比较运算符 === 表示全等于,同时判断数值和数据类型,==只判断数值,所以注意"12"==12返回的是true 8.循环结构 switch中的break是可以省略的,与C#是不一样的。 9.数组 在JS中,数组是集合、队列、栈的综合体,因为可以承载各种类型的数据。 所以你可以看到这样的数组: 甚至放进去一个函数,然后执行。 很神奇的操作。 for in 循环 输出数组的下标 还可以输出对象的属性名; 10.函数 函数由关键字function声明,注意函数没有返回值,因为本身就是一个var类型,有返回值直接接收就可以了,不需要显示声明。 函数的形参声明也不需要写var关键字,直接写变量名即可。 注意: 函数的声明位置不影响其调用; 原因: 所有声明的函数都属于window对象,JS有一个优先级会优先声明,所以调用和位置无关,但是这样的坏处是可能替换window对象的其他函数。 注意: 函数可以返回函数,返回值是function类型。 函数名+()直接调用函数。 类似于C#中的委托,使用一个变量表示函数 匿名函数(上部代码) 函数的lambda表达式 自调用函数/闭包 自调用函数就是让函数自己执行一次; 说明:第一个包围住函数声明的括号()表示声明函数体,紧接着后面的()表示调用函数,如果有参数,直接写在括号内。 11.作用域 只有在function内部声明的变量才是局部变量,除此之外的变量都是全局变量,自动添加进window对象中。 注意: 预解析过程:声明优先但是赋值不会优先; 现象:控制台输出undefined。 原因:JS的优先级机制会将所有的声明放到程序最优先执行的位置,所以只要声明了就不会报错,但是赋值并不会提升到同样的优先级,而是保留到原位。 同样的; 预解析过程适用于函数的声明。 如果同时声明了同名的方法和变量: 注意:方法是覆盖对象的,可以这么理解,预解析器将声明和方法都提到了最优先级,但是声明是被提到了最上层,而方法是被放置在下一行位置。 JavaScript学习(一) 标签:class 传递 bsp div 优先级 操作 直接 报错 适用于 原文地址:https://www.cnblogs.com/LeeSki/p/11619700.htmlvar arr2 = [1,‘lee‘,[1,2,3],function a(){alert(‘Hi‘)}];
console.log(arr2[3]());
console.log((arr2[2]))
function demo()
{
return function (){console.log("It‘s demo inside!")};
}
var de = demo();
de();
function demo(func)
{
if(func)
{
func();
}
}
function hello()
{
console.log("This is Hello!");
}
demo(hello());//函数作为参数传递
demo(()=>console.log("lambda"));//lambda表达式
(function demo(num){console.log("This is "+num)})(2);
console.log(a);
var a=12;