js 和 java 的异同点
首先,js 的语法和 kottlin 的语法有些相似。比如 var,方法声明用
function 方法名称 (参数名称...){
//方法内部逻辑
}
还有变量类型声明 :
数据类型 : 变量名=值
区别:一:js 的数据类型和 java 类似。只不过 js 中的数据类型 number 将 java 中的 int,double,float 整合了。 二:js 中可以不用声明变量类型。变量不声明数据类型的话,那么他的类型取决于当前的值是什么数据类型。举例:
var num=0;
num-"lyyyyyyyyyyyyyy";
num=[];
num={};
复制代码
三:js 中的类型判断:
console.log(typeof '');//string
console.log(typeof []);//object
console.log(typeof {});//object
console.log(typeof 1);//number
console.log(typeof null);//object
console.log(typeof undefined);//undefined
console.log(typeof true);//boolean
console.log(typeof function(){});//function
console.log(typeof /\d/);//object
复制代码
检查某个对象属于哪个构造函数,返回true/false
复制代码
function A(){};
function B(){};
let a = new A();
console.log(a instanceof A);
console.log(a instanceof B);
console.log([] instanceof Array);//true
console.log({} instanceof Object);//true
console.log(/\d/ instanceof RegExp);//true
console.log(function(){} instanceof Object);//true
console.log(function(){} instanceof Function);//true
复制代码
变量声明
js 的变量声明其实大体上可以分为三种:var 声明、let 与 const 声明和函数声明。
函数声明
doSomething();
function doSomething() {
console.log('doSomething');
}
var doSomething= 2;
复制代码
你觉得上面会输出什么?TypeError 吗?其实输出的结果是 doSomething。这就引出了我们的问题了,当函数声明与其他声明一起出现的时候,是以谁为准呢?答案就是,==函数声明高于一切,毕竟函数是 js 的第一公民。==
那么,下面的例子呢?
doSomething();
function doSomething() {
console.log('1');
}
function doSomething() {
console.log('2');
}
复制代码
当出现多个函数声明,那怎么办呢?以上代码输出结果为 2。==因为有多个函数声明的时候,是由最后面的函数声明来替代前面的。==
doSomething();
var doSomething= function() {
console.log('doSomething');
}
复制代码
var doSomething = function() {}这种格式我们叫做函数表达式。
它其实也是分为两部分,一部分是 var doSomething,而一部分是 doSomething = function() {},参照例 1,我们可以知道,实际上这道题的结果应该是报了 TypeError(==因为 doSomething 声明但未赋值,因此 doSomething 是 undefined==)。
评论