Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-显示函数中的null属性_Javascript_Typescript - Fatal编程技术网

Javascript JS-显示函数中的null属性

Javascript JS-显示函数中的null属性,javascript,typescript,Javascript,Typescript,我知道已经有人问过检查值是否为null或未定义的问题,但我在这里遇到了一个我不理解的问题。我做了一个函数来分割一个字符串,它就像一个符咒。但是当我传递一个null或未定义的值时,程序停止。我想要的是能够有一个空字符串,而不是程序停止。 代码如下: splitString(str: string, length: number) { var words = str.split(" "); if (typeof(str) === null ){ r

我知道已经有人问过检查值是否为null或未定义的问题,但我在这里遇到了一个我不理解的问题。我做了一个函数来分割一个字符串,它就像一个符咒。但是当我传递一个null或未定义的值时,程序停止。我想要的是能够有一个空字符串,而不是程序停止。 代码如下:

splitString(str: string, length: number) {
    var words = str.split(" ");
    if (typeof(str) === null ){
        return " "
    }
    else {
        for (var j = 0; j < words.length; j++) {
            var l = words[j].length;
            if (l > length) {
                var result = [], i = 0;
                while (i < l) {
                    result.push(words[j].substr(i, length))
                    i += length;
                }
                words[j] = result.join(" ");
            }
        }
        return words.join(" ");
    }

}
你知道如何避免程序停止,让他在空字符串时输入一个空字符串吗? 多谢各位

编辑: 现在使用以下代码:

splitString(str: string, length: number) {

    if (str != null && str != undefined){
        var words = str.split(" ");
        for (var j = 0; j < words.length; j++) {
            var l = words[j].length;
            if (l > length) {
                var result = [], i = 0;
                while (i < l) {
                    result.push(words[j].substr(i, length))
                    i += length;
                }
                words[j] = result.join(" ");
            }
        }
        return words.join(" ");
    }
    else if (typeof(str) === null ){
        return " "
    }
}
splitString(str:string,length:number){
if(str!=null&&str!=undefined){
var words=str.split(“”);
for(var j=0;j长度){
var结果=[],i=0;
而(i
实际上,您可以在代码块内部的函数参数中默认为空(
)字符串。以下是一个例子:

splitString(str: string, length: number) {
  var words = (str || " ").split(" ");
  for (var j = 0; j < words.length; j++) {
    var l = words[j].length;
    if (l > length) {
      var result = [], i = 0;
      while (i < l) {
        result.push(words[j].substr(i, length))
        i += length;
      }
      words[j] = result.join(" ");
    }
  }
  return words.join(" ");  
}
splitString(str:string,length:number){
var words=(str | |“”).split(“”);
for(var j=0;j长度){
var结果=[],i=0;
而(i
您能否先测试
str
是否为空,然后返回并尽早离开块在尝试拆分字符串之前,您应该检查
null
。以及null==“object”的类型。检查是否相等,而不是类型您拥有的
var words=str.split(“”)
作为函数中的第一条语句,在您检查
str
的类型之前。是的,因为当他检查null时,代码已经抱怨了。谢谢大家,我成功了,谢谢大家。这是一个很大的错误。。。我用正确的函数更新了代码谢谢。我用工作函数编辑了代码。
splitString(str: string, length: number) {
  var words = (str || " ").split(" ");
  for (var j = 0; j < words.length; j++) {
    var l = words[j].length;
    if (l > length) {
      var result = [], i = 0;
      while (i < l) {
        result.push(words[j].substr(i, length))
        i += length;
      }
      words[j] = result.join(" ");
    }
  }
  return words.join(" ");  
}